LoginSignup
0
0

More than 5 years have passed since last update.

DeepLearningについてメモ

Last updated at Posted at 2018-01-16

勉強中に感じたことのメモ。
内容の真偽については保証できません。

行列演算

ニューラルネットワークの、入力に対して重みを掛ける積和演算を、行列の積で表すことができる。
人間が読みやすくなる。
計算量は変わらない。

Python

Pythonは、行列演算が簡単にできるような仕組みになっている。(ライブラリ?)
配列を投げると、勝手にforeachして、勝手に要素ごとに演算を行い、勝手に元の配列と同じ構造に並べて、返してくれる。
他の言語でfor分3重ループ20行ぐらいの処理が、2~3行で書けたりする。
計算量は変わらない。

ニューラルネットワークの構造を決めるのは人間

ニューラルネットワークの出力ノード数や、中間層の層数やノード数は人間が決める。
例えば、手書きの数字の推論であれば、出力ノード数は10個にする。
ステップ関数/シグモイド関数や、恒常関数/ソフトマックス関数の選択も人間が決める。
構造を決めてからでないと学習ができない。
中間層は何パターンか作って学習させて、正解率が高くなったものを選ぶ?
推論モデルを実装するマシンのリソースや処理時間などの制約を受ける。

シグモイド関数

出力が0~1の間で実数を出力する。
シグマ文字に似ているのでシグモイドと呼ぶ。

DLには学習と推論の2つのフェーズがある

学習

学習は、訓練データ(大量)を入力して、出力値と期待値の誤差を逆伝搬させて、ニューラルネットワークの重み(積和演算の係数)を決定するフェーズ。
超ハイスペックなマシンで学習させる。
訓練データのうち、出力期待値とセットになったものを教師データと呼ぶ。
教師がなくただデータが大量にあるだけの場合も学習する手法はある。

推論

推論は、学習で決定したモデルを使用して、個々の入力データを分析するフェーズ
エッジコンピュータへインプリメントして、実務を行う。
スペックは高いとは限らない。

DLの出力は、分類と回帰の2つの出力方式がある

DLで解く問題には、大きく分けて、分類問題と回帰問題の2つの問題がある。

分類

分類はデジタル値で出力する問題
画像から動物か車かを推論したり、動物の種族を推論するなど

回帰

回帰はアナログ値を出力する問題
例えば画像から体重を推論するなど

ソフトマックス関数

出力ノードすべての合計値が1となるような、比率を出力するように、出力値を補正する関数。
回帰問題の出力段に使用する。
入出力の順位は変わらないので、1位の結果だけ出力する場合には、ソフトマックス関数を通しても通さなくても結果は変わらない。
分類問題の場合はソフトマックス関数を通さずに、1位の結果だけ出力することが多い。
分類問題でも、猫の確率88%犬の確率12%などと出力する場合は使用する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0