おひとりさま現役パラレルワーカーフクコろぐ

これからの会社員は、複数の収入源をもとう! 会社に翻弄されずアナタらしく仕事ができる。 そんなパラレルワーカーを広めるフクコのブログです。

【文系プログラミング初心者deE資格】ゼロつくディープラーニング #45

f:id:fukuko-parallel-work:20211213222635j:plain

こんにちは!

現役パラレルワーカー フクコです。

f:id:fukuko-parallel-work:20210212204833p:plain



前回の記事↓に続き
www.fukuko-parallel-work.com



来年の2月の試験に向けてE資格試験勉強中のため


E資格とは?の記事はコチラ↓

www.fukuko-parallel-work.com




ゼロつくシリーズでおなじみ

オーライリーから出版されている

ディープラーニングの本格的な入門書でよくおススメされる

「ゼロからつくる Deep Learning」本


f:id:fukuko-parallel-work:20211029220008j:plain





この本↑を毎日5ページずつコツコツこなす

約2か月間で今年中に終了するので

来年のE資格試験までにこれで基礎力をつけることにしました。(^^)


ついつい私は何もないとだらけてしまうので(笑)

毎日5ページ終わった後の記録とまとめを書いていこうと思います。


と、まとめに入る前に…

やる気を出すためのコトバをシェアします!!(主に私のやる気を出すために 笑)

「強い者は弱い者を助け守る。

 そして弱い者は強くなり、また自分より弱い者を助け守る。

 これが自然の摂理だ。」


by炭治郎


私の大好きな鬼滅の刃から

炭治郎の名言です。


またまた、優等生、炭治郎の発言。

キミはホントにいったい何歳サバを読んでいるのか?笑

10年ちょいしか生きていない少年が言うコトバじゃないですよね。

全てを見通してます。笑


ですが、ホントそのとおり!

初めてだと、できるまでみんなに迷惑かけちゃうもの

それでも、いいのです!!(^0^)

だって、

できるようになったら

その分まだできないヒトを助けてあげればいいのだから

なので…

たとえまだまだプログラミングができなくて、

今はセンパイ達のコードをググり、

コピペで切り抜けていたとしても

そのうちできるようになったら恩返しすればいいのです!!(なんのこっちゃ 笑)


炭治郎、どうもありがとう! (^0^)

今日もやる気が出てきました! 

よし!! 今日も頑張るぞ~! お~!! 

というコトで、

プログラミングができるようになる日を夢見て、今日もコツコツ、私はノルマをゼッタイこなしますよ!


ではでは、いい加減まとめに入ります。笑



その前に本の目次の紹介です。

ゼロつくディープラーニングは、下記↓の合計8章で構成されています。

本の目次

  • 5章 誤差伝播法
  • 6章 学習に関するテクニック



ちなみに…

ゼロつくディープラーニング第1章はPython入門のセクション(20ページ分)なので、

とりあえず今回私は飛ばし、第2章からまとめています。

現在は最終章! 第8章 ディープラーニングで~す。



第8章 ディープラーニング のつづき


ディープラーニングは、

層を深くしたディープなニューラルネットワーク

ディープラーニングの性質と課題、そして、可能性についてみていく

8.3.3 分散学習

GPUによりディープラーニングの演算はかなり高速化できる。

しかし

ディープラーニングには多くの試行錯誤が伴う。

ディープラーニングの学習をスケールアウトさせようとする「分散学習」が重要になる。


ディープラーニングに必要な計算をさらに高速化するために

複数のGPUや複数のマシンで分散して計算を行うことが考えられる

EX. GoogleのTensorflow、MicrosoftのCNTK


たとえば

1個のGPUと100個のGPUに分散学習した時と比べる

1個のGPUに比べて56倍!の高速化が可能となる。

EX. 7日かかった学習がたった3時間で終了


分散学習は、マシン間での通信やデータの同期などとても難しい問題

なので

難しい問題は、Tensorflowなどすでにある優れたフレームワークにお任せしよう!!

8.3.4 演算精度のビット削減


ディープラーニングの高速化

計算量も大切だが、

メモリ容量バス帯域などもボトルネックになる。


したがって

ネットワークに流れるデータのビット数は、できるだけ小さくすることが望まれる


コンピュータ上で小数を表現するには

32ビットの単精度浮動小数点数

64ビットの倍精度浮動小数点数などのフォーマットがある。


ディープラーニングは、

16ビットの半精度浮動小数点数(half float)でも問題なく学習できる。


ちなみに

Pythonでは、一般的に64ビットの浮動小数点数が使われている

8.4 ディープラーニングの実用例


ディープラーニング

画像のクラス分類のような「物体認識」だけでなく

様々な問題に適用することができる

8.4.1 物体検出


「物体検出」

画像中から物体の位置の特定を含めてクラス分類を行う問題

「物体認識」は、画像全体が対象だが

「物体検出」では、画像中から、クラスの位置まで特定しないといけない


「物体検出」の手法として

CNNをベースとした方法である「R-CNN」(Regions with CNN features) という手法が有名

「R-CNN」では、

入力画像からオブジェクトらしき領域を 2,000 領域を抽出し

それぞれの領域に対して、特徴を抽出し物体認識(画像分類)を行う


「R-CNN」の構造は↓のとおり。


f:id:fukuko-parallel-work:20211214081227j:plain


今日のまとめ


ハイ、今日はここまで!!

今日もページ数のわりに短い気分。

第8章 ディープラーニング、まだまだ続きます!

引き続き頑張りまっす。


最後まで読んでくださり、ありがとうございます!

フクコ


ディープラーニング入門書おススメ本


E資格とは?

www.fukuko-parallel-work.com