AI用語 メモ


ちょっと引っかかるところとかをメモっておきました


計算グラフ(computational graph) : 演算とデータをノード(node)とエッジ(edge)で表現する方法 : 参照

重み(weight): 入力された値をどれくらい強化/減衰させるかを決める変数

バイアス(bias):出力を制御する(させ易くしたり逆にさせ難くくする)因子、あるいは出力の傾向の高さを表す量

 

活性化関数(activation function): 受け取った値を、どのように次の層へ渡すかを定義した関数

パーセプトロン(perceptron)、あるいは単純/単層パーセプトロンでは、ステップ(step,staircase)関数

ニューラルネットワーク(neural network)、あるいは多層パーセプトロン(MLPs)では、シグモイド(sigmoid)、ソフトマックス(softmax)、tanh、ReLU(ランプ)など

の非線形(unlinear)関数(function)が使われる

:単純/単層(single)パーセプトロン、多層(multiple)パーセプトロンという表現はこのサイトでは使いません。

 

 

 

誤差(error):ニューラルネットワークから出力した値と、実際の値との間の差異(difference)

全結合層(fully connected layer,inner product layer) : すべてのノードが次の層のすべてのノードに繋がっている層の事

 

ハイパーパラメーター(hyper parameter):学習アルゴリズムからは直接さわれないパラメーター(人間系の変数)

世代(epoch) : 一つの訓練データを学習させる回数(過学習を起こさずに、かつ訓練精度と予測精度が共に良い回数を見つけることが肝要)

ミニバッチサイズ(mini batch size)

学習率、訓練率(learning rate)

 

 

 

ライプニッツ則(Leibniz rule):関数の積の微分(differentiation)

{f(x)g(x)}’ = f'(x)g(x) + f(x)g'(x)

あるいは

$$\frac{d}{dx}( u(x) \cdot v(x))= u(x) \cdot \frac{dv(x)}{dx} + v(x) \cdot \frac{du(x)}{dx}\hspace{100pt } $$

 

連鎖律(chain rule):合成関数の微分

{f(g(x))}’ = f'(g(x))g'(x)

あるいは.

$$y = f(u),u = g(x) \hspace{ 220pt } $$ $$ \frac {dy}{dx} = \frac {dy}{du} \frac {du}{dx}\hspace{ 250pt } $$

 

偏微分についても

$$z = f(u),u = g(x,y)\hspace{ 220pt }$$

$$\frac{\partial z}{\partial x} = \frac {\partial z}{\partial u} \frac {\partial u}{\partial x} \hspace{ 250pt }$$

$$\frac{\partial z}{\partial y} = \frac {\partial z}{\partial u} \frac {\partial u}{\partial y} \hspace{ 250pt }$$

 

微分の公式なんざぁ忘れちまった…という方へ

 

$$\frac{d f(x(t),y(t))}{dt} = \frac{\partial f(x(t),y(t))}{\partial x} \cdot \frac{dx(t)}{dt} + \frac {\partial f(x(t),y(t))}{\partial y} \cdot \frac{dy(t)}{dt}$$

 

線形代数ってどんなんだったっけ……という方へ

 

 

 

エンコード(encode):データ(data)に特定の方法で、後で元の(あるいは類似の)データに戻せるような変換(conversion)を加えること。

 

最小二乗法、最小自乗法( least squares method)

誤差を含んだ値から, 最もフィットする関数を計算する手法

 

コスト(cost)関数(損失関数、目的関数、誤差関数):重みとバイアスを変数に持つ関数。この関数を最小にする重みとバイアスを見つけることが眼目になる。

例:二次コスト関数

$$C(w,b) = \frac{1}{2n} \sum_x \| y(x) – a \|^2$$

$$C(w,b)\approx 0 となるw,bは何? $$

 

勾配降下法(gradient descent):

これ自体は最小値を求める手法であって、機械学習のためのものというわけではない。コスト関数を最小化するアイデアとして関数に勾配降下法を適用してみようというのが機械学習の眼目。

->最急降下法(steepest descent)

->確率的勾配降下法(stochastic gradient descent, SGD)

->ミニバッチ確率的勾配降下法

勾配を高速に計算するアルゴリズム(algorithm)が逆伝播

勾配:スカラー(scalar)場(field)からベクトル(vector)場(field)を作り出す仕組み

 あるいはスカラー関数の各成分の傾き(gradient,slope)

 

    スカラー場:f(x,y,z)

$$ベクトル場:grad f = \nabla f = \left( \frac {\partial f}{\partial x},\frac {\partial f}{\partial y},\frac {\partial f}{\partial z}\right)$$

 

スカラー場:0階のテンソル(tensor)場

ベクトル場:1階のテンソル(tensor)場

 

場(field)のイメージ

スカラー場の各点は単位を与えると分かりやすい、℃とかmとか…

ベクトル場の矢印に単位を与えるとしたらm/sなど

 

勾配(gradient)は地図の等高線をイメージした説明が理解しやすいようですし、テンソルに関しても定義の仕方によっては泥沼にはまりやすいようで、”ニューラルネットをコードに落とし込む場合は……”という限定での説明の方がピンとくると思うので、別ページにメモっておきます。

 

 

 

フィードフォワードニューラルネットワーク(feedforward neural network);

再帰型ニューラルネットワーク(recurrent neural network):

 

逆伝播(backpropagation):

L : ニューラルネットワークの層数(number of layers)

$$出力層での誤差\delta^Lに関する式(equation)\hspace{ 75pt }$$

$$\delta^L = \nabla_aC \odot \sigma ‘ (z^L)$$

$$誤差\delta^Lの次層での誤差\delta^{L+1}に関する式(equation)\hspace{ 35pt }$$

$$\delta^l = ((w^{l+1})^T \delta^{l+1}) \odot \sigma ‘ (z^l)$$

$$任意のバイアスに関するコストの変化率の式(equation)\hspace{ 15pt }$$

$$\frac{\partial C}{\partial b_j^l} = \delta_j^l$$

$$任意の重みについてのコストの変化率の式(equation)\hspace{ 20pt }$$

$$\frac{\partial C}{\partial w_{jk}^l} = a_k^{l -1}\delta_j^l$$

 

$$  \odot :アダマール積(Hadamard \hspace{ 3pt }product)/シューア積 \hspace{ 80pt }$$

$$\left({\begin{array}{cc} a _{11}&a _{12}\\ a _{21}&a _{22}\\ a _{31}&a _{32}\\ \end{array}}\right) \odot \left({\begin{array}{cc} b _{11}&b _{12}\\ b _{21}&b _{22}\\ b
_{31}&b _{32} \end{array}}\right) =\left({\begin{array}{cc} a _{11}\,b _{11}&a _{12}\,b _{12}\\ a _{21}\,b _{21}&a _{22}\,b _{22}\\ a _{31}\,b _{31}&a _{32}\,b _{32}
\end{array}}\right)$$

 

添え字の読み方

$$w_{jk}^l   (l−1)番目の層のk番目のニューロンから、 l番目の層の\\ j番目のニューロンへの接続に対する重み$$

$$a_j^l     l番目の層のj番目のニューロンの活性\hspace{ 70pt }$$

$$b_j^l     l番目の層のj番目のニューロンのバイアス\hspace{ 60pt }$$

 

 

 

 

クロス(交差)エントロピー(cross entropy):コスト関数の一種。

 

過学習、過適合(overfitting):

 

ノルム(norm): 大きさを表す量

実数上のベクトル空間 V
任意の x , y∈V と任意の実数(スカラー)a

$$\|\overrightarrow{x}\|=0\iff \overrightarrow{x}=0\hspace{ 240pt }$$

$$\|a\overrightarrow{x}\|=|a|\|\overrightarrow{x}\| \hspace{ 270pt }$$

$$\|\overrightarrow{x}\|+\|\overrightarrow{y}\|\geq \|\overrightarrow{x}+\overrightarrow{y}\| \hspace{ 230pt }$$

 

正規(正則)化(regularization):過適合を軽減する手法。

L1、L2、ドロップアウト(dropout)、……

 

$$L^1 =\displaystyle \sum_{ i = 1 }^{ n } |x_i|$$

$$L^2 = \displaystyle \sqrt {\sum_{ i = 1 }^{ n } x_i^2}$$

 

画像認識用に学習用画像データを「そろえる」場合も正規化という

 

 

局所受容野(local receptive field)、特徴マップ(feature map):

重み(weight)とバイアス(bias)の共有:

プーリング(pooling):

訓練データ(training data)の拡張:水増し

 

カーネル(kernel)、フィルター(filter):共有重みと共有バイアス

 

 

畳み込み(convolution):

* :  畳み込み演算

$$a^1 = \sigma(b + w*a^0)$$

 

 

スーパーピクセル(superpixel):色やテクスチャなど性質の近いピクセルを集めた,意味を持つ小領域

 


線形(linear):関数 f が線形の場合以下が成り立つ。プロットしたグラフは直線。

f(x + y) = f(x) + f(y)

f(k*x) = k*f(x)

従って、非線形とはこういう関係が成り立たない….ということ。

例:単純な非線形関数

f(x) = x + 1

f(k*x) = k*x + 1

k*f(x) = k*x + k

従ってこの場合は、f(k*x) = k*f(x)が成り立たない

 

線形分離(識別)可能(linearly separable):幾何的には、ふたつの点の集合(set)が二次元平面上にあるとき、それらの集合を一本の直線で分離できること(境界線を引くイメージ)。

3次元以上の場合を含めて一般化すると、n次元空間(space)上のふたつの点の集合をn-1次元の超平面(hyperplane)で分離できる…ということ。

入力を超空間の座標、出力をその点の属性と捉えると、属性で点を分類したときに線形分離可能であればパーセプトロンで問題を解くことができる(教師あり学習)。

 

SVM(Support Vector Machine : サポートベクターマシン):線形識別器の一種

 


普遍性定理 : 計算したい関数が何であろうとも、その計算を行えるニューラルネットワークが存在する

●畳込みニューラルネットワークは画像に対して並進不変性がある

 

 


アドホック(ad hoc)な:暫定的な、特定の目的のための、その場限りの

ヒューリスティック(heuristic):経験則(の)、試行錯誤(的な)という意味。必ず正しい答えを導けるわけではないが、ある程度のレベルで正解に近い解を得ることができる方法。


落書き

パーセプトロンはNANDゲートを表現できる
コンピューターの論理回路はNANDゲートのみでできる
ニューラルネットワークのシグモイドはパーセプトロンを含んでいる


読み方

∂:デル(del)、パーシャル・ディー(partial d)、ラウンド・ディー(rounded d)

LaTeXなら\partial、IMEなら「でる」

:アシックス(asics)のロゴではない

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*