まるっとワーク

データ分析・電子工作など気になることを残していきます

ニューラルネットワークについて②


前回の続きで、書ききれなかった部分について説明していきます。

目次


損失関数とは

前回の記事でも少し書きましたが、損失関数は最適解の基準となる良し悪しの評価し、ニューラルネットワークの学習で用いられる関数を指します。
ただし、今回はニューラルネットワークで使われる損失関数の話となるため、コスト関数が非凸な関数となる可能性が高く、単純ではありません。
また、機械学習ディープラーニングを用いた実装では、学習用データの損失が小さすぎるというのも問題が生じる可能性があるため、設計時に踏まえておくべき側面について、まとめていきたいと思います。

ディープラーニングでの損失関数の特徴

上記の通り、非凸な関数である可能性が高く、勾配降下法に伴うパラメータ更新によって達した地点が最適解かどうかはわかりません。
そのため、最適化には今後説明する確率的勾配降下法など、処理を複数回実行して確かめる作業が必要となります。

目指すべき損失について

機械学習ディープラーニングでは、学習用データの損失が小さいということが必ずしも良いことではありません。
というのも、実際に運用された際に入力されたデータと学習用のデータは若干性質が異なる場合があるため、学習用のデータで合わせこみすぎてしまうと、少し違うデータが来ただけで、大きく予想を外してしまう場合があるからです。
これを過学習と呼び、過学習に対する対応は機械学習ディープラーニングで大きな課題となります。
今後説明する、正則化項の導入、次元削除等の対応が、この課題に対応した方法として一般的に使われます。

損失関数関数の種類(Loss Function)

広く一般的に使われる平均二乗誤差以外に、目的に応じてコスト関数の設計は必要。
例えば、ステップ関数のように0 or 1しか返さないような関数を使ってしまうと、結果パターンが2つしかないため、どの程度の状態なのかを評価できない。
このようなケースもあるため、それぞれの特徴についてまとめる。

  • 平均二乗誤差: 一般的に使われる。二乗和でも問題ない
  • クロスエントロピー:分類などで使用する。値の範囲を0~1をとり、推定した確率分布と正解の確率分布がどの程度異なるかを測る。分類項目それぞれに属する確率を示しており、すべてを合計すると1(100%)となる。


ニューラルネットワークの普遍性定理について

1989年にG.Cybenkoの論文にて提唱された定理であり、
ニューラルネットワークは中間層1層で任意の関数を近似できる」といったもの。
つまり、入力層と中間層、出力層の3層でどんな関数も表現可能ということ。

ただし、中間層のノードを大量にしないと解決できないケースも想定され、層を増やすことでより少ないノードで解決ケースもある。
別名、万能近似定理と呼ばれる。

まとめ

今回はニューラルネットワークの設計の残りの部分について、まとめました。
詳しい内容は次にまとめていこうと思いますが、ここまででニューラルネットワークの構造や設計時の考え方について少しわかってきたのではないかと思います。