AI・機械学習・ディープラーニング

損失関数、ニューロンの数、層の深さは何か?

投稿日:

損失関数

 

ニューロンの数

ニューロンの役割

ここでいうニューロンは単純パーセプトロンのこと。つまり、x1w1+x2w2>bで表されるもの。

この式より、bより大きいものと小さいものの2つに分類する。これが役割。

x1、x2の数の意味

xnのnは入力データの次元を表している。

x1w1+x2w2>b なら2次元の入力データである。
x1w1>b なら1次元の入力データである。
x1w1+x2w2+x3w3>bなら3次元の入力データである。

x1w1+x2w2+x3w3>b この例で言うと、3次元の入力データをbより大きいか小さいかの2つに分類している。大きいか小さいかが何を意味するかは、「何を意味したいか」を自分で定義することである。

入力層の数

このため、入力層の数は、入力データによって決まる。入力データをどのように処理したいかで決まる。

MNISTの手書きデータであれば、28*28ピクセルのモノクロである。28*28=784なので、各ピクセルを白か黒か、0か1かで入力するため、入力層は784個になる。これが意味することは、「784次元空間上のひとつの点(データのプロット)」である。

出力層の数

出力層は分類したいクラスの数で決まる。MNISTの手書きデータを0~9の10種類に分ける場合は、出力層は10個になる。

MNISTの例だが、入力層、出力層の数が決まった。後は隠れ層の深さと各隠れ層のニューロンの数が問題となる。

 

ニューラルネットの層の深さ

単層パーセプトロン、単層ニューラルネットでは、n次元の線形な分類しかできない。

層を深くすることで、複雑な分類ができるようになる。層の深さは、クラス分けの複雑さに応じて深くする必要がある。

損失関数の値が満足するほど小さくなるまで、隠れ層を深くする OR 隠れ層のニューロンの数を増やしていくのである。

層とニューロンの数は多ければ多い程、単純に賢いです。速く学習できるし、正確に学習できます。しかし、多ければ多ほど、計算パワーが必要になり、学習コストが上昇するのです。

層とニューロンの数

  • 損失関数を下げれるかどうか?←下げれなければ増やす必要がある。
  • 計算資源(コスト)?←計算資源が少ないと、増やしたくても増やせない
  • 多いにこしたことはないが、コストを考えると少ない方が良いと言える。

-AI・機械学習・ディープラーニング

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

【AI(人口知能)まるわかり】(日経ビジネス)を読んで

 機械学習・ディープラーニングによりAI開発が加速している 機械学習に必要なもの。 大量の学習データ 膨大な計算リソース これらを可能にしたのがgoogleである。計算リソースはGoogle …

no image

誤差逆伝播法が必要な理由

ディープラーニングの勉強してると、誤差逆伝播法が必ず出てくるんだけど、イマイチなぜ?それが必要なのか分からなかった。 理由 ニューラルネットの層が深くなると、勾配の計算に時間がかかる。 誤差逆伝播法だ …

no image

岡谷貴之「深層学習」に挫折したらオライリー「ゼロから作るDeep Learning」

ディープラーニング協会のG検定の推奨書籍である、「深層学習」を読み始めた。 いきなりこれ読んでたら、確実に挫折して、「AI研究なんて、大学院レベルの人がやること…」となっていただろう。 幸い自分は1冊 …

no image

AWS Amazon Machine Learning で MNISTを分類

実際に機械学習アプリを使用するにあたってはAWSとGCPで最も簡単に作る方法を調査した。 GCPでは Cloud ML Engineというのがあるが、あくまでEngineであり、GUIで簡単にアプリを …

no image

ディープラーニングのビジネス新規事業立ち上げ情報

エンジニアがディープラーニング界隈で稼ぐ(転職 or 起業)するためのガイド。 ディープラーニングのお勉強 「日本ディープラーニング協会」(Japan Deep Learning Associatio …