Advertisement

More Related Content

Recently uploaded(20)

Advertisement

1.単純パーセプトロンと学習アルゴリズム

  1. 長岡技術科学大学 自然言語処理研究室 修士1年 西山 浩気
  2. 1. 人工ニューロン 2. パーセプトロンと学習アルゴリズム 3. ADALINEと学習アルゴリズム 1. 勾配降下法 2. 確率的勾配降下法 単純パーセプトロンと学習アルゴリズム 2
  3.  ニューロン ◦ 簡略化された脳細胞  シナプス:他のニューロンから信号を受け取る  シナプスの伝達効率はそれぞれ異なる  他のニューロンに信号を伝える 単純パーセプトロンと学習アルゴリズム 3
  4.  パーセプトロン ◦ ニューロンをモデル化 ◦ 最適な重み係数を自動的に学習 ◦ サンプルを2値で分類 単純パーセプトロンと学習アルゴリズム 4
  5.  数式化 ◦ 入力がn個あるとき入力Xiの重みをWi ◦ 入力値と重みベクトルの積の総入力z を計算 ◦ z が 閾値θを超えるか否かで二値分類(-1/1)する 単純パーセプトロンと学習アルゴリズム 5                w w w n w ... 2 1                x x x n x ... 2 1
  6.  総入力z ◦ z  総入力閾値θを超えた場合は1,それ以外を-1に 分類するために活性化関数を用いる ◦ ヘビサイド関数(ステップ関数) ◦ Φ(z) = 単純パーセプトロンと学習アルゴリズム 6 xwxw xwxwxw T nn n i nn nn    1 2211 ... ...2211 結合荷重入力結合荷重入力結合荷重入力      )(1 )(1 θ θ z z
  7.  式を簡単にするためにw0 = θ, x0 = 1とする  活性化関数によって 線形分離可能なクラスを区別 ただし、重みwを適切に決める必要 単純パーセプトロンと学習アルゴリズム 7                      w w w n w ... 2 1 θ                      x x x n x ... 2 1 1       )0(1 )0(1 )( z z zΦ
  8.  学習の手順 1. 重みを0もしくは値の小さい乱数で初期化 2. 訓練データのサンプルごとに以下の手順で更新 1. 出力値 を計算 2. 重みwを更新 単純パーセプトロンと学習アルゴリズム 8 yˆ
  9.  各サンプルごとの重みwjを更新するために⊿ wjを追加  を更新するために以下の式を使用  重みベクトルwの重み は同時に更新される  全ての更新が終わるまでは は更新されない 単純パーセプトロンと学習アルゴリズム 9 xw jj yy )ˆ(  η wj www jjj :       ル予測されたクラスラベ 正解クラスラベル η学習率η :ˆ : )10(: y y wj  yˆ
  10.  パーセプトロンは線形分離可能な問題でのみ利用可能  分離できない場合は以下の最大値を決めておく ◦ 重みの更新回数 (トレーニング回数) ◦ 誤分類の最大値  最大値を設定しない場合はいつまでも重みが更新される 単純パーセプトロンと学習アルゴリズム 10
  11.  パーセプトロンのアルゴリズムを改良したもの  パーセプトロンの基本概念 ◦ 重みの更新は簡単な式 ◦ 活性化関数でクラス分類  ADALINEの基本概念 ◦ 重みの更新に関数Φ(z) ◦ 活性化関数でクラス分類 単純パーセプトロンと学習アルゴリズム 11
  12.  ADALINEでは重みの学習にコスト関数を用いる ◦ 誤差平方和  J(w)は凸関数のため勾配降下法(バッチ勾配降下法)が利用可能 ◦ 1ステップごとに 坂を下る ◦ 下る大きさは勾配と 学習率で決まる 単純パーセプトロンと学習アルゴリズム 12 ))(()ˆ( 22 2 1 2 1 )( zyyywJ Φ 
  13.  1ステップごとに勾配を計算  更新する重み は、不の勾配と学習率ηの積  コスト関数の勾配は各サンプルの重みごとに計算 ◦ 1ステップ計算するごとに全訓練データで計算 単純パーセプトロンと学習アルゴリズム 13 www  : )(wJw   η   i iii xzywJ ))(()( Φ 
  14.  1ステップごとに勾配を計算  更新する重み は、不の勾配と学習率ηの積  コスト関数の勾配は各サンプルの重みごとに計算 ◦ 1ステップ計算するごとに全訓練データで計算 単純パーセプトロンと学習アルゴリズム 14 www  : )(wJw   η   i iii xzywJ ))(()( Φ    i iii xzyw ))(( Φη 
  15.  アルゴリズムの収束 ◦ 最適な学習率ηを見つける必要がある  η 大 : 誤差が増加  η 小 : 収束に大量の学習  最適なηを見つけるためには ◦ 前処理が必要  例: スケーリング(標準化) 単純パーセプトロンと学習アルゴリズム 15
  16.  勾配降下法の問題点 ◦ 1ステップごとに全ての訓練データで計算が必要 ◦ 計算にかかるコストが高い  確率的勾配降下法 ◦ 重みの更新に全訓練データを用いるのではなく ◦ ランダムにひとつ訓練データを選択し、パラメータを修正 単純パーセプトロンと学習アルゴリズム 16   i iii xzyw ))(( Φη  xzy iii ))(( Φη 
  17.  確率的勾配降下法(Stochastic Gradient Descent)の利点 ◦ 勾配降下法に比べて学習が高速 ◦ オンライン学習(データを収集しながら学習)ができる 単純パーセプトロンと学習アルゴリズム 17
  18.  Python機械学習プログラミング, Seastian Raschka, インプレス  Github, Python-machine-learning, https://github.com/rasbt/python-machine-learning- book/blob/master/code/ch02/ch02.ipynb 18単純パーセプトロンと学習アルゴリズム
Advertisement