LoginSignup
3
1

More than 5 years have passed since last update.

マルレク課外 "ディープラーニング入門6時間集中講義" メモ

Posted at

9/3(sat) の マルレク課外 ディープラーニング入門6時間集中講義 に出席したので、そのメモ

TL;DR

  • ニューラル・ネットワークは人間の神経シナプス構造を模しているから、その動きを理解することがニューラル・ネットワークを理解する近道
  • ディープラーニングが昨今注目されているのは、コンピューティングパワーのおかげ
    基礎自体は結構前に考えだされたもので、それ自体はあまり進展していない。時代が追いついた
  • ニューラル・ネットワークのコーディング(?)環境はまだ揃っていない
    たとえば出力値に対する検証・デバッグってどうするの?ってことに対して利用しやすい方法が確立していない
  • 適用用途は "クラス分け" → "推論・対話" → "知覚・運動系へのフィードバック" → "言語理解" → "数学的理解" と進んでいくはずだが、現在位置は "推論・対話" が実用レベル
  • ニューラル・ネットワークを使って学習させるデータは、低解像度でも十分
    実際、手書き数字を認識させる場合は縦横28pxのデータを使っている。それよりも重要なのは、そのデータに特徴が現れているかどうか。高解像度であることと特徴が際立っていることは同義ではない
  • 計算量と経済的合理性は常に比較して挑む
    そうでないと自己満足で終わってしまううえ、お金の面でも無きを見る

個人的感想

TensorFlow等の実装系を理解するには

これはニューラル・ネットワークの基礎を学ぶことで、実装内容が詳しく理解できるようになるので、基礎を学ぶこと

学習データの準備方法

入力の次元数の計算方法

よくMNISTの手書き数字を学習させる方法として次元数(入力数)を784としますが、なぜ784なのか
これは入力のバイト数だった

2px * 2px の 256階調画像なら

1[0..255] 2[0..255]
3[0..255] 4[0..255]

となり 4 が入力数となる

RGBなら 入力数は 12

1[0..255, 0..255, 0..255] 2[0..255, 0..255, 0..255]
3[0..255, 0..255, 0..255] 3[0..255, 0..255, 0..255]

MNISTの手書き数字は 28px * 28px * 256階調 なので 28 * 28 * 1 = 784 ということ

この考え方を応用すれば、たとえ画像でなくとも入力数は決められる

例)

10秒に一回の温度データ出力で1分間の特徴量を学習させる場合

| 0秒前の温度データ | 10秒前の温度データ | 20秒前の温度データ | ... | 50秒前の温度データ

と入力数を6にしてあれば良い

入力データのサイズ

高解像度が常に良いわけではなく、低解像度化することでむしろ特徴が際立ち、かつ入力も小さくなるため、学習データとして適切になる可能性もある
(モザイク画像に対して目を細めることで特徴抽出するようなもの)

要するに「間引き方」が大切

機械学習における最大の課題

"学習済みモデル"を「作る人」と「利用する人」をうまく分離できてないところにある

学習済みモデルというのは、いわゆるアルゴリズムに相当する。SHA256みたいなのもの
現在の機械学習はそのアルゴリズムを作る人と使う人が同じで、再利用が極めて難しい
(この辺は、学習済みモデルを再利用するという観点でググっていただければ、そういうエントリーが乏しいことに気づいていただけるであろう)

これでは毎度毎度車輪の再発明しているようなもので、この辺はHadoopが一般的にならなかった理由にも近い。毎度毎度ソートアルゴリズム書くの?おれが?まじで?みたいな。

よって 学習済みモデルの再利用性を高めることが、この分野を促進するために必要なことだと考える

あとがき

ほんと、疲れた

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1