Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Summary of Machine Learning and Deep Learning

Summary of Machine Learning and Deep Learning

msyksphinz

June 10, 2017
Tweet

More Decks by msyksphinz

Other Decks in Technology

Transcript

  1. 2. 機械学習の基礎  2.1 帰納学習  2.1.1 演繹的学習と帰納的学習  演繹的学習:

    抽象的な概念から具体的な知識を導く(数学の公式→具体的な問題)  帰納的学習: 具体的事実から、説明できるような知識を導く  2.1.2 帰納的学習の例題 – 株価の予想 –  複数のこれまでの経過から、未来を予測する。株価の予想。  どのようなパタンが、この変動傾向を適切に表しているのか? A社 B社 C社 D社 E社 F社 G社 H社 I社 J社 X社の翌日の株価変動 上昇 下降 下降 下降 下降 下降 上昇 下降 下降 上昇 上昇 下降 上昇 下降 上昇 下降 上昇 上昇 上昇 下降 上昇 上昇 … 下降 上昇 下降 下降 下降 下降 上昇 下降 上昇 下降 下降
  2. 2.1 帰納学習  多くのパタンを生成して、その評価を行う A社 B社 C社 D社 E社 F社

    G社 H社 I社 J社 X社の翌日の株価変動 上昇 下降 下降 下降 下降 下降 上昇 下降 下降 上昇 上昇 下降 上昇 下降 上昇 下降 上昇 上昇 上昇 下降 上昇 上昇 … 下降 上昇 下降 下降 下降 下降 上昇 下降 上昇 下降 下降 過去の結果 100 A社 B社 C社 D社 E社 F社 G社 H社 I社 J社 上昇 ー 下降 ー 上昇 下降 下降 ー 下降 下降 上昇 下降 上昇 下降 ー 上昇 下降 上昇 下降 下降 … 下降 上昇 下降 下降 上昇 上昇 ー 下降 ー ー 10000 それぞれのテストパタンと、過去 のパタンの類似度を測定する。 (ー:どちらでもない)  一致 && 上昇: score++ 不一致 && 下降: score++
  3. 2.2 強化学習  一連の行動に対して最後に評価が与えられるような学習手法  例: ゲームなどの戦略において、教師あり学習にて戦略を学習する  例: 将棋

    「その手は良い手か否か」を一手ごとに教える→教師データの作成が困難  強化学習では、一連の着手が終了した後に評価を得て、その評価に基づいて学習す る。  ゲームの学習の良否は、そのゲームの勝敗 (報酬)   最終的な勝敗に基づき、一手一手の着手のような行動に関する知識を学習する。  例2: 2足歩行ロボットの歩行行動学習  トルク制御などの情報は、教師データの作成が困難  強化学習を適用した場合: 最終的に2足歩行できたかどうかに基づき、間接制御など の情報を学習する
  4. 2.2.2. Q学習 -強化学習の具体的方法-  Q学習(Q-learning) : 学習対象となるのはQ値(Q-value)  ある場面において次にとるべき行動を選択するための指標となる数値の集合 

    最初はランダムにQ値が設定される  たまたま目標とする行動系列に少しは近いものが現れる   最終的にその行動系列に対して報酬を得ることができると、その行動系列に対してQ値 を増加させる  報酬のフィードバック(?)  報酬を得なかった行動についても、次の状態に関連するQ値の最大値に比例してQ値 を更新する。
  5. 2.2.3 強化学習による迷路抜け  スタート地点から初めて、分岐を繰り返して下段までたどり着く。なるべく多 くの報酬がもらえるような行動知識を学習せよ。 スタート s1 s2 s3 s4

    s5 s6 s7 s8 s9 s10 s11 s12 s13 s14  最初にランダムに値を設定すると、たまたま大きな値がいつも選択されてしまい学習が上手く行かない  ε-グリーディ法(ε-greedy): あらかじめεを0から1までの適当な整数として決めておく  行動選択に際しては、0から1までの乱数を生成する  その値がε以下であればランダムに行動を選択する  その値がε以上であればQ値の最大値を選択する
  6. 2.2.3 強化学習による迷路抜け (2)  Q14にのみ報酬を与えた場合 Q1 Q2 Q3 Q4 Q5

    Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 45 784 51 35 73 882 3 67 49 25 21 92 18 991 45 784 51 35 73 882 3 67 49 25 21 92 18 991 45 784 51 35 73 882 3 67 49 25 21 92 18 991 45 784 51 35 73 882 3 67 49 25 21 92 18 991 45 784 51 35 73 882 3 67 49 25 21 92 18 991 45 784 51 35 73 882 3 67 49 25 21 92 18 991 45 784 51 35 73 882 3 67 49 25 21 92 18 991 スタート s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 0 200 400 600 800 1000 1200 1 43 85 127 169 211 253 295 337 379 421 463 505 547 589 631 673 715 757 799 841 883 925 967 学習結果 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14
  7. 3. 群知能と進化的手法  3.1 群知能  生物の群れの挙動などを模倣する。「粒子群最適法」と「蟻コロニー最適化法」  例: 探索すべき空間が平面である場合

     平面上に粒子を配置し、粒子は平面を移動しつつ、評価値を計算する 1. 自分の過去の記憶を参照し、過去最も良い評価値を得た場所の周辺に向けって動く。 2. 群れ全体として、過去もっとも良い評価値を得た場所の周辺に向かって動く。
  8. 3.1.2 蟻コロニー最適化手法  蟻コロニー最適化問題の原理:群の群れが巣穴と穴場の間の最短距離を求める  それぞれの蟻はランダムに動作するが、フェロモンを分泌しながら移動する。  距離の長い移動: フェロモンが経路上で蒸発しやすい 

    距離の短い移動: フェロモンが蓄積しやすい  蟻コロニー最適化法の学習手続き 1. 経路を設定し、すべての経路に対するフェロモン濃度を0に初期化する 2. 以下を適当な回数繰り返す 1. 以下の方法で、すべての蟻を巣穴から穴場まで歩かせる 1. 確率εでランダムに経路を選択する 2. 確率1-εで、フェロモン濃度に応じて経路を選択する 2. 以下の方法で、各個体の移動距離に関連して経路上納フェロモン濃度を更新する。 1. フェロモン濃度に定数ρを乗じて蒸発させる 2. 各個体の移動距離Lを求め、個体の選択した経路に対応するフェロモン濃度に以下の値を加える。
  9. 3.2 進化的手法  生物の進化に着想を得た機械学習手法  GA (遺伝的アルゴリズム)  知識の獲得対象の情報を染色体(chromosome)とする 

    染色体に対して、以下の操作を行うことで進化させる  交叉(crossover), 突然変異(mutation), 選択 (selection)  交叉: 2つの染色体を食い合わせて子供の染色体を作り出す  一か所で交差させる一点交叉(one point crossover)  2か所で交差させる二点交叉(two point crossover)  一定の確率で遺伝子座を入れ替える一様交叉(uniform crossover)  突然変異: 染色体の情報をランダムに書き換える  遺伝子座の01を反転させる反転(flip bit)  選択: 染色体の評価値に基づいて染色体を選り分ける  局所解に入らないために、ε-greedy法などの確率的な方式を導入する必要がある。
  10. 3.2.2 遺伝的アルゴリズムによる知識獲得  ナップサック問題: 30個の荷物からなるナップサック問題について、最適解を求める。  30個の荷物をビット列で表現し、0をナップサックに入れない、1を入れるとする。 0 200 400

    600 800 1000 1200 1400 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 評価値 世代 ナップサック問題における評価値の推移 最良評価値
  11. 4. ニューラルネット  4.1 ニューラルネットワークの基礎  ニューロンと活性化、ネットワークを接続する。  フィードフォワード側のニューラルネットワーク v1

    w11 w12 v1 w12 w22 v1 w13 w23 x1 x2 z3 単方向のニューラルネットワークの実装 1. 重みと閾値を初期化する 2. 入力データを読み込む 3. 以下をすべての入力データについて計算する 1. 入力値と対応する重みを掛けて足し合わせる 2. 閾値を引く 3. 伝達関数を用いて出力値を計算する
  12. 4.2 バックプロパゲーション  パーセプトロンを学習させる。入力に対する出力と回答に対する誤差が小さく なるようにパーセプトロンの係数を調整する。 v1 w13 w23 x1 x2

    z3 v1 w11 w12 v1 w12 w22  出力値と教師データを比較  小さい場合:出力が大きくなるように重みと閾値を更新  大きい場合:出力が小さくなるように重みと閾値を更新  誤差Eの定義  誤差Eと中間層からの出力hiを用いて、hiに対応した 重みwiを更新する計算  ここで、伝達関数f(u)の微分係数f’(u)を代入して = − = + × × ′() × ℎ = + × × × (1 − ) × ℎ
  13. 4.2 バックプロパゲーションの計算  バックプロパゲーションの学習手順 1. 重みと閾値を初期化する 2. 入力データを読み込む 3. 以下をすべての学習データについて繰り返し計算する

    1. 入力値と重みwhを用いて、出力層への出力hiを計算する 2. Hiと重みwoを用いて、出力値を計算する。 3. 出力層の重みと閾値を学習する 4. 中間層の重みと閾値を学習する = + × × × (1 − ) × ℎ ∆ = ℎ × (1 − ℎ ) × × × o × (1 − ) = + × × ∆ 多数決論理の学習結果 0 1.000000 1.000000 1.000000 0.998858 1 1.000000 1.000000 0.000000 0.988325 2 1.000000 0.000000 1.000000 0.988422 3 1.000000 0.000000 0.000000 0.013654 4 0.000000 1.000000 1.000000 0.988549 5 0.000000 1.000000 0.000000 0.014008 6 0.000000 0.000000 1.000000 0.014104 7 0.000000 0.000000 0.000000 0.001648
  14. 5. 深層学習  5.1 階層をより深くすることによる欠点  バックプロパゲーションによる学習が上手く行かなくなる可能性がある   誤差の消失問題

     初期値などに依存する局所解しか見つからなくなる可能性がある。   これらの問題を解決するための「畳み込みニューラルネット(Convolutional Neural Network: CNN)」、「自己符号化器(Auto Encoder)」 … … … … 複雑で膨大な学習データに対応するためには、大規 模なニューラルネットが必要になる。  大規模なニューラルネットでは、学習の収束が困 難になる。  微分値が常に一未満になるため、誤差の値が小さ くなってしまう。
  15. 5.1.2 畳み込みニューラルネット  画像認識分野の深層学習手法として良好な成績を示す。  畳み込み層(convolutional layer)と、プーリング層(pooling layer)によって構成される。  畳み込み層:

    入力信号に含まれる特徴を抽出する(画像フィルタに似たような特徴)  プーリング層: 入力信号をぼかすことで、情報の位置ずれに対する頑強化を強める。 入 力 畳み込み層1 プーリング層1 畳み込み層2 プーリング層2 畳み込み層3 プーリング層3 全結合層 出力 …
  16. 5.1.3 自己符号化器を用いる学習手法  特徴  入出力数が同一  中間層の人工ニューロンの個数が入出力よりも少ない  入力値と出力が同じようになるように学習を進める(教師無し学習)

     入力値の特徴をニューラルネット内に保持することを目的とする。  中間層の状態によって入力値の特徴を表現する。  入力信号を識別するためのニューラルネットワーク  自己符号化器を積み重ねることで、特徴抽出のための多階層ネットワー クを構成し、最後に識別のためのニューラルネットを付け加える … … 中間層の人工ニューロンの個数が入出力 よりも少ない。 与えた入力値と同じ値が出力に現れるよ うに学習を進める。