ディープラーニング(深層学習)?人工知能?機械学習?ニューラルネットワーク?
最近流行りのディープラーニング(深層学習),人工知能,機械学習,ニューラルネットワーク……
「勉強しよう!」と参考書を買ってみても「小難しい文字ばかりで理解できない……」,「前提知識が多すぎる……」って挫折しそうな貴方に!
図でシンプルな解説をします!
自然言語処理,画像認識・生成,自動制御……
0から実装できる事を目標に解説を区切って書いていきたいと思います。
#ディープラーニング(深層学習)とは?
ニューラルネットワークという技術を使って機械学習させる技術です!
とりあえず今回は「へー」っと深く考えずに流しておきましょう〜
#ニューラルネットワークとは?
上に出てきた”ニューラルネットワーク”。
様々な参考書やネットには長々と解説が綴られる厄介もののようですが、要は以下図のことです。
と言われても、ピンと来ませんよね(笑)
この大枠の図を頭の隅に入れておいてください、細かい説明に入っていきます。
#ネットワーク層とは?
ニューラルネットワークの図を見て、これで何をどうするんだろう?と思いますよね。
その答えがこちら。
つまり、各ネットワーク層では、”受けとったデータ(入力)に何らかの処理を加えて新しいデータ(出力)を出す処理”をしています。
この図で言うと、入力X1,X2,X3を受け取り、Wを掛けbを足した結果を出力にしています。
*余裕があったら覚えておいて!
一般的にWX+bの計算処理をするネットワーク層をAffine層やliner層と呼び、ネットワーク層の処理で1番ベーシックとなる構成です。
処理をしています、と言われても実装のイメージも付かないし、そもそも計算方法が分からないですよね。
まずは行列計算の解説を挟みます。
#前提知識となる行列計算!
*分かる方は飛ばしてくださいね。
#WX+bの計算
しれっと行列計算の解説を挟みましたが、勘がいい貴方は気づいていますよね。
W,X,bはそれぞれ行列で、WX+bは行列計算を行っているんです。
#色んな役割を持つネットワーク層
ネットワーク層は、他にも沢山の種類があり、それぞれ行う計算処理が違うんです。
<各ネットワーク層の代表例>
・Affine層(今回説明したWX+bの処理を行うネットワーク)
・Convolution層
・ReLU層
・LeakyReLU層
・Pooling層
・Sigmoid層
・Tanh層
・BathNormalization層
・GlobalAveragePooling層
・LSTM層
・Softmax層
などなど、他にも沢山あるんです。
それぞれの解説は別記事に記載したいと思います。
#よく聞く”畳み込みニューラルネットワーク”とは?
「ニューラルネットワーク」と検索したら、よく見かける”畳み込みニューラルネットワーク(CNN)”。
単純に、”Convolution層を入れ込んだニューラルネットワークのモデルの事”です。
*ネットワーク層A,B???
CNNのルールみたいなもので、Convolution層のすぐ後ろは活性化関数のネットワークがくる、ってのがあるんですが
ここではとりあえずスルーしましょう。
CNNの解説記事に詳しく書きます。
#よく聞く”系列変換モデル”とは?
系列変換モデル、と言われるものも、
”LSTM層を入れ込んだニューラルネットワークのモデルの事”です。
こちらは、自然言語処理など、その名の通り”時系列に沿って変換するもの”に使われます。
LSTM層の他にも系列変換に特化したネットワーク層は沢山あるので、おいおい解説をしますね。
#まとめ:ニューラルネットワークとは?
それぞれの役割(計算処理)を持つネットワーク層を、何連にも繋げて、
”入力を、段々と違うものに変えて、出力を得るもの”です。
次回は、それぞれのネットワーク層について解説していこうと思います。
*おまけ
逆伝搬・学習・学習方法・損失(誤差)関数などのキーワードが出てこないとウズウズしている方
ネットワーク層についてお話した後にたっぷりと解説しますよ。