とらりもんHOME  Index  Search  Changes  Login

とらりもん - 機械学習入門: ニューラルネットワークの基本構造 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

([[機械学習入門]]に戻る!)

ここは, ニューラルネットワークの基本構造を学ぶ。テキストは「ゼロから作るDeep Learning」の第1章から第3章までである。

!第1章について

第1章はほとんどがpythonの基本であり, 諸君は既に知っていることが多いだろう。しかし, 以下については, 今後必ず必要になってくる知識だが, 理解が浅かったり知らなかったりする可能性があるので, しっかり読んでおこう。

問1-1: 以下についてyes/noで答えよ:
# データ型(P5)について理解しているか? type( )という関数で出てくる。特にbool型(P7)をしっかり理解しよう。
# ディクショナリ(P7)について, 特にその作り方と使い方を理解しているか?
# if/else文やfor文(P8)の書き方, 特にインデントの意味とやり方(タブは使わない!!)を理解しているか?
# クラスの「コンストラクタ」(P10)を理解しているか?
# numpy.ndarrayの演算の「ブロードキャスト」という機能(P14)を理解したか?
# numpy.ndarrayのflatten()というメソッド(P15)を理解したか?

今後, 諸君は多くの画像を扱うことになるので, 画像の取り扱いのスキルも上げていこう。P19には, lena.pngという画像ファイルが出てくる。これは画像処理工学でよく使われる有名なサンプルデータである。まずはこの画像をサンプルに, いくつかの処理を学ぼう。

問1-2: そのために便利な"[[imagemagick|https://imagemagick.org/]]"というライブラリと"exiftool"というコマンドをインストールせよ
$ sudo apt install imagemagick exiftool
(Mac OSXなど, Linux以外の環境でやっている人は, 自力でなんとかしてください)

問1-3: lena.pngという画像ファイル(P19)を見つけ(ダウンロードしたzipファイルの中に入ってるはず), そのディレクトリにcdし, 以下のコマンドを実行せよ:
$ exiftool lena.jpglena.png
$ display lena.jpglena.png
exiftoolコマンドで, lena.png画像の詳細情報が表示される。displayコマンドで, lena.png画像そのものが表示される。

lena.pngは256ピクセル x 256ピクセルのカラー画像である。これを64ピクセル x 64ピクセルにしてみようピクセルのJPEG画像にしてみよう:
$ convert lena.jpg lena.png -resize 64 lena64.jpg
$ exiftool lena64.jpg
$ display lena64.jpg
ここでconvertもdisplayも, imagemagickライブラリのコマンドである。imagemagickには膨大な数のコマンドがあり, 様々な画像処理をコマンドで実行できる。

問1-4: lena.pngを, 512ピクセル x 512ピクセルのJPEG画像に変換し, その詳細情報を表示せよ。

!第2章について

第2章は, ニューラルネットワークをpythonで実施するための小さな練習問題として, 単純パーセプトロンの実装について説明している。とはいえ, ここで出てくるANDゲートやORゲートといった論理回路に関する話題はニューラルネットワークには直接には無関係なので, さらっと飛ばしてよい。P26-P27の, 「重みとバイアスの導入」「重みとバイアスによる実装」で出てくるpythonコードを理解できればOK。

問2-1: pythonのnumpy.ndarrayクラスのインスタンスとして2つの数ベクトルa=(1, 2, 3, 4)とb=(5, 4, 3, 2)を表現し, その内積をnumpy.sum関数を使って計算せよ。

問2-2: 前問と同じことを, numpy.sum関数でなくnumpy.dot関数を使って行え(P58参照)。