とらりもんHOME  Index  Search  Changes  Login

機械学習入門: ニューラルネットワークの実装の準備

機械学習入門に戻る!)

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

第1章について

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

問1-1: 以下についてyes/noで答えよ:

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

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

問1-2: そのために便利な"imagemagick"というライブラリと"exiftool"というコマンドをインストールせよ

$ sudo apt install imagemagick exiftool

(Mac OSXなど, Linux以外の環境でやっている人は, 自力でなんとかしてください)

問1-3: lena.pngという画像ファイル(P19)を見つけ(ダウンロードしたzipファイルの中に入ってるはず), そのディレクトリにcdし, 以下のコマンドを実行せよ:

$ exiftool lena.png
$ display lena.png

exiftoolコマンドで, lena.png画像の詳細情報が表示される。displayコマンドで, lena.png画像そのものが表示される。

lena.pngは256ピクセル x 256ピクセルのカラー画像である。これを64ピクセル x 64ピクセルのJPEG画像にしてみよう:

$ convert 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参照)。

Last modified:2020/05/26 11:30:27
Keyword(s):
References:[機械学習入門: レポート課題5] [機械学習入門]