taisablog

taisa's engineer blog

「 機械学習 」 一覧

機械学習におけるアルゴリズム

前回のパーセプトロンに引き続きこの勉強会用に仕事ではじめる機械学習を元に機械学習におけるアルゴリズムをまとめる。 AIPy (アイパイ) ハンズオン #3 (2018/07/19 19:30〜) この勉強会について しばらくは機械学習に特化した勉強会になります。仕事で機械学習などを活用したいけど何からはじめればよいか分からないような方向けのハンズオン形式の勉強会です。ハ ンズオン形式といいつつまず初めは力を養う為に 仕事ではじめる機械学習 の輪読会からはじめます。この会はみんなで集まって意見を交換したり協力したりしながら一気 … ※不適切な内容である場合はすぐに取り下げます。 そもそもどのアルゴリズムを選ぶべきか 機械学習にはどんな種類があるか 分類(Classification):正解となる離散的なカテゴリ(クラス)と入力データの組み合わせで学習し、未知のデータからクラスを予測する 回帰:正解となる数値と入力データの組み合わせで学習し、未知のデータから連続値を予測する クラスタリング:データを何かしらの基準でグルーピングする 次元削減:高次元のデータを可視化や計算量削減などのために低次元マッピングする その他 推薦:ユーザーが好みそうなアイテムや、閲覧しているアイテムに類似しているアイテムを提示する 異常検知:不審なアクセスなど、普段とは違う挙動を検知する 頻出パターンマイニング:データ中に高頻度に出現するパターンを抽出する 強化学習:囲碁や将棋のような局所的には正解が不明確な環境で、とるべき行動の方針を学習する アルゴリズムを選定するには以下のフローチャートを参考にするとよい。startからはじめて条件によって分類、回帰、クラスタリング、次元削減のどれを選べばよいかが分かる。 アルゴリズムを選定する、scikit-learnのフローチャート ※その他(推薦、異常検知、頻出パターンマイニング、強化学習)は覗く 参考:scikit-learn algorithm cheat-sheet 分類 教師あり学習の1つ 予測対象はカテゴリなどの離散的な値を予測する メールがスパムかどうかや画像が映っているのがどういった物体かなど クラスの数が2の場合を二値分類、3以上の場合を多値分類という 分類については以下のようなアルゴリズムが存在する パーセプトロン ロジスティック回帰 SVM (サポートベクターマシン) ニューラルネットワーク k-NN (k近傍方、k-Nearest Neighbor Method) 決定木、ランダムフォレスト、GBDT (Gradient Boosted Decision Tree) ナイーブベイズ HMM (Hidden Markov Model) 本記事では太字の分類アルゴリズムと回帰(少し)について触れる ロジスティック回帰 ロジスティック回帰の特徴 出力とは別に、その出力のクラスに所属する確率値が出せる 学習はオンライン学習でもバッチ学習でも可能 予測性能はまずまず、学習速度は早い 過学習を防ぐ為の正則化項が加わっている 特に出力の確率値が出せるという特徴のため、広告のクリック予測にもよく使われている。 実践系の参考記事 新シリーズ第8回「ロジスティック回帰分析でターゲットを確率的に予測する」 ロジスティック回帰 ロジスティック回帰を実装してみよう ロジスティック回帰の決定境界 決定境界は直線 ロジスティック回帰の仕組み 活性化関数はシグモイド関数 損失関数は交差エントロピー誤差関数 シグモイド関数 入力が0の時は0.5をとる 値が小さくなるほど0に近づく 値が大きくなる程に1に近づく シグモイド関数を記述するコード def sigmoid(x): return 1 / (1 + np.exp(-x)) 出力yは y= sigmoid(np.dot(w, x)) と表すことが可能で、2値分類時の交差エントロピー誤差関数は、N個のデータに対してyを出力、tを正解ラベル(正しい場合は1、間違っている場合は0とする)、logを底がeの自然対数とすると、次のような書式で表すことができる。 2値分類の時の交差エントロピー誤差関数をコードで書くと以下のようになる def cross_entropy_error(y, t, eps = 1e-15): y_clipped = …

「AIPyハンズオン#1」開催レポート

2018/04/15   -機械学習
 ,

第1回AIPyハンズオン勉強会を開催したのでその開催レポート AIPy (アイパイ) ハンズオン #1 (2018/04/12 19:30〜) この勉強会について 仕事で機械学習などを活用したいけど何からはじめればよいか分からないような方向けのハンズオン形式の勉強会です。まず初めは 仕事ではじめる機械学習 の「7章 映 画の推薦システムをつくる」をハンズオン形式で行う予定です。みんなで集まって意見を交換したり協力したりしながら一気に機械学習に関する知見を深めていこうというの … 結論から言うと第1回ながら合計8名の方に参加して頂いて、専門ではないけどよく知っている方もいて、想定していた以上にすごくためになる会になった。当日はハンズオンというか輪読会で、しっかりハンズオンがやれるようになるまではまだしばらく時間がかかりそう。 開催動機 去年くらいから機械学習をやろうと思い本を読んだりしつつ、今年は本格的にやって何かしらアウトプットをしようと決めたものの、自分一人では到底無理だということにそうそうに気づいたのがきっかけ。他もそうだけどみんなで集まって話しながらやると学習曲線が一人でやるより圧倒的によいので、皆さんの力を借りながら少しずつ進めていくことにした。 当日の流れ 当日は以下のスケジュールでやった。前座LTがあることで少し和やかに進められたかなと思う。次回以降も同じスケジュールでやっていく予定 19:30- 簡単な趣旨の説明 19:40- 自己紹介 19:50- 前座LT(@tomonari_s 中国深セン渡航レポート) 20:00- ハンズオン開始(担当:@taisa831) 21:30- 終了 21:30- 行ける人だけで懇親会 LT風景 第1回勉強会の題材 「仕事ではじめる機械学習」の第7章の「映画の推薦システムをつくる」を題材にした。この章では前半から後半にかけてどのようなアプローチで映画の推薦システムをつくるかという説明がされ、何から手を付けたらいいの?という自分にとってはとてもよい内容だった。 一人で読んでいるとどのワードが重要なのかすらわからず、軽く読み進めてしまうところやよく読んでもいまいち理解できないところがあったけど、勉強会を通じてコミュニケーションをすることで、いまいち理解できなかったところがクリアになり、ようやく機械学習のとっかかりが分かった気がした。 「仕事ではじめる機械学習」の「映画の推薦システムをつくる」を実践してみる 「仕事ではじめる機械学習」の映画の推薦システムをつくるを実践してみる 本書のソースコートは以下にあがっている。本記事はchap07が対象。 事前準備 サンプルコードを実行できるように、あらかじめ以下をインストールしておく。Pythonは3系を使う想定。 参考:Mac環境へのPython3系インストール jupyter notebook が用意されているから以下からソースの実行をすることができる ホワイトボードを使って解説してもらう また、当日出てきたよく使うワードや考え方を後日まとめて頂けたので、こちらと本を合わせてもう一度見直す。 Topics in aipy the first from Tsugunori Okuda 懇親会 勉強会後は表参道とは思えないビール210円、チューハイ130円という破格の居酒屋である中西で懇親会をした。こんな流れで今後も開催を続けて少しずつレベルをあげていってアウトプットできるところまでもっていきたい。