深層学習ことはじめ その4

これから数回にわたって深層学習についての記事を書きます.ひとまとめに長文としたものを数回に分けて紹介していきます.初学者向けです,何かの参考になれば.

******

生物学的アナロジー
前の章で、人工ニューラルネットワークが脳と物理的にどのように似ているかについて説明しましたが、学習やその他の「高レベル」の属性に関してはどうですか。興奮性しきい値ロジスティック単位の出力は0から1の間でなければなりません。分類器では、予測するクラスを選択する必要があります.たとえば、1枚の写真を見て猫または犬かを判定する,の問題を考えてみましょう.出力が1ならば  cat,0ならば dogと判定するものとします.そして、出力が0.7だったら、我々はどちらの答えを出しますか?ネコ!どうして?私たちのモデルは、「これが猫のイメージである確率は70%である」と言っているからです。 50%の閾値は、ニューロンの「興奮性閾値」、すなわち活動電位が生成される閾値として作用する。興奮性および抑制性の結合ニューロンは他のニューロンにシグナルを送るときに「興奮性」または「抑制性」シグナルを送る能力を持っています。ご想像のとおり、興奮性結合は活動電位を生み出し、抑制性結合は活動電位を抑制します。これらはロジスティック回帰ユニットの重みのようなものです。非常に積極的な体重は非常に興奮的な接続になります。非常に負の重みは非常に抑制的な関係になるでしょう。
繰り返しと親しみやすさ
「練習は成功の母」と人々はよく言います。何度も何度も練習すると、上達します。ニューラルネットワークも同じです。同じまたは類似の例についてニューラルネットワークを何度もトレーニングすると、それらの例を分類するのに役立ちます。あなたの心は、タスクを実践することによって、その特定のタスクに対するその内部エラー曲線を下げることです。バックプロパゲーション、ニューラルネットワークのトレーニングアルゴリズムについて説明すると、これがコードでどのように実装されているかがわかります。基本的に私たちがやろうとしていることは何度も何度もfor-loopを行い、同じサンプルを何度も見て、毎回それらに対してバックプロパゲーションをすることです。
ニューラルネットワークから出力を取得する
使用するデータを取得する使用するデータがまだない場合は、この記事の例を実行するために必要なデータがいくつかあります。 https://kaggle.comはこれのための素晴らしいリソースです。 MNISTデータセット(https://kaggle.com/c/digit-recognizer)をお勧めします。バイナリ分類をしたい場合は、別のデータセットを選択するか、MNISTから2つのクラス(たとえば0と1)を選択することができます。機械学習の問題に使用するデータは、多くの場合同じ形式です。いくつかの入力XといくつかのラベルまたはターゲットYがあります。各サンプル(xとyのペア)はxの実数のベクトルとyのカテゴリカル変数(多くの場合0、1、2、…)として表されます。すべてのサンプル入力をまとめて行列Xを形成します。各入力ベクトルは行です。つまり、各列は異なる入力機能です。したがって、XはN x Dの行列で、Nはサンプル数、Dは各入力の次元数です。 MNISTの場合、D = 784 = 28 x 28です。これは、28 x 28行列である元の画像が1 x 784ベクトルに「平坦化」されているためです。 yがバイナリ変数(0または1)ではない場合、それをインジケータ変数の行列に変換できます。これは、後でsoftmaxを実行するときに必要になります。 MNISTの例では、Yをインディケータ行列(0と1の行列)に変換します。ここで、Y_indicatorはN x Kの行列です。ここでもN =サンプル数、K =出力のクラス数です。 MNISTの場合はもちろんK = 10です。

コメント

タイトルとURLをコピーしました