投稿

2月, 2017の投稿を表示しています

「Deep Learning」を理解する

イメージ
オリジナルサポートサイト 「Pythonで学ぶディープラーニングの理論と実装」 この本は「深層学習」の要点をわかりやすく解説してあります。 プログラミングをして理解する方にはお勧めの本です。 理論の理解、開発環境構築、プログラミングを実装しディープラーニングを理解してみます。 「深層学習」の理論 ニューラルネットワークの「学習」とは 学習 訓練データから最適な重みパラメータの値を 自動 で獲得すること 学習が行えるように 「 損失関数 」を基準としその値が 最も小さくなる重みパラメータ を探し出すことが学習の目的 「活性化関数」 入力信号の総和を出力信号に変換する関数を活性化関数(activation function)と呼ぶ シグモイド関数 ReLU (Rectified Linear Unit) 「損失関数」 2乗和誤差 、 交差エントロピー誤差    p, qが 離散確率変数 なら、これは次のようになる。 {\displaystyle \mathrm {H} (p,q)=-\sum _{x}p(x)\,\log q(x)\!} 損失関数の値を探し出す手法 として「 勾配法 」と呼ばれる関数の傾きを使用する。勾配とはすべての変数の 偏微分をベクトルとしてまとめたものを勾配(gradient) と言う。 勾配・勾配法 勾配: すべての偏微分をベクトルとしてまとめたものを勾配(gradient)という。 勾配は各地点において低くなる方向を指します。言い換えると 勾配は各場所において関数の値を最も減らす 方向 です。 勾配法: 機械学習の問題の多くは学習の際に最適なパラメータを探索する。 ニューラルネットワークも同様に最適なパラメータ(重みとバイアス)を学習時に見つける必要がある。最適なパラメータとは 損失関数が最小値 をとるときであり 最小の場所を探すのに勾配法を使用 する。 勾配法は現在の場所から一定の距離だけ進み繰り返し勾配方向に移動し関数の値を徐々に減らすのが勾配法(gradient method)という。 学習アルゴリズムの実装 ステップ1