最近DNNに関して時間ある限り懸命に勉強してきたつもりですが、
まだ、基本設計でさえ分かっていないような虚しさを感じます。
例えば、最初は何に基づいて、DNNの各層のノード数と層数を決めるのでしょうか。
tuning必要があると分かりますが、層数と各層上のノード数はそれぞれ莫大で、
全組み合わせで試すのは不可能ですね。
基本的な構成はないでしょうか。
そしてその基本的な構成は訓練用のサンプルとは関係あるでしょう。
このような実用的な話があまり議論されていないような感じです。
##情報有れば是非ご提供いただきたいです
(単刀直入、明瞭明快なものが理想です)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
実装経験が、業務システムのデータを使ったclassificationやregressionだけと少し偏った経験ですが、(1)ノードを増やすほど高次な関数を表現できる、(2)層を深くすると複数の線を重ねないと実現できないような複雑なもの(例えば排他論理和・円の内側と外側)を表現できる、と理解しています。
そのため、識別モデルの実装の際は、
1)とりあえず、特徴量の次元削減して2次元にプロット
2)心の目で結果を眺め、高次の関数になりそうであれば、その次元数(極大値・極小値の数)を数える。
3)同様に飛び地になりそうな部分の数を数える。
4)項番2)の10倍~20倍をノード数に、項番3)に+1~2したものを階層数にして学習
5)結果を見ながらチューニング(基本、多めにしているつもりなので減らす方向)
という手順で行っています。
画像の場合は、上記のような話に行く前の畳み込み層などの前処理部分をどうするかを考える必要があります。
投稿2018/04/19 19:26
総合スコア3376
0
単純なものだと、過去に性能が良いと言われているネットワーク構造を使うことですね。
例えば、AlexNetなど。
ノードを増やすと、教師データの学習度合いがよくなっていきます。
ここですでに精度が出ないなどとなるとお話にならないので、過学習覚悟でノードを増やします。
深くしていくのであれば、途中で初期の入力を合流させたり。
とりあえず教師データをそれなりに学習できるようにしてから、過学習を抑えるようにします。
Dropout層を入れたり、ボトルネックとなるような層を入れたりします。
ここまでやればデータの学習しやすさなどについて感覚がつかめるかと思います。
投稿2018/04/18 21:37
総合スコア8560
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/19 02:04
2018/04/19 10:46 編集
2018/04/19 10:58
2018/04/19 13:48 編集
2018/04/19 14:53
2018/04/20 03:37
2018/04/20 07:00 編集
2018/04/20 09:35
2018/04/21 11:09 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/20 01:52
2018/04/20 02:06 編集
2018/04/20 21:46
2018/04/21 10:59
2018/04/21 11:13 編集
2022/08/05 00:51