高校訪問で解説に利用した資料のPDFおよびpythonのコードを共有します。
- 解説につかった資料 (PDF)
- Python コードのサンプル1 (Pythonで関数とグラフの基礎)
- Python コードのサンプル2 (手書き文字の認識)
人工知能プログラミングの実習の準備:
- Google アカウントを持っていない人は、Google ホームページ(https://www.google.co.jp/)の画面右上に表示されている「ログイン(login)」を押して「アカウント作成」をクリックし、アカウントを作成してください(アカウントの作り方の詳細の参考:https://www.howtonote.jp/google-account/new/index1.html)。
- Google アカウントを作成したら、Google が教育や研究用として提供しているPythonのプログラミング環境の無料サービスである Google Colaboratory (以下、Colab)https://colab.research.google.com にアクセスし、Google アカウントでログインしてください(操作方法の詳細は https://aiacademy.jp/media/?p=1037 などが参考)。
- 「ノートブックの新規作成」を選び、配布している pyhotn のコードを入力していきましょう。
空欄の部分をセルと呼びます。主に使うのはプログラミングのためのCodeセル(デフォルトのセル)と、文書作成のためのMarkdownセルです。
各Codeセルの前頭には「In [x]:」が表示され,xは空のときに当該Codeセルがまだ実行されていない状態を、数字のときに当該Codeセルがノートブックで実行された順番を、「*
」のときには当該Codeセルが実行中の状態を表しています。
MNISTデータセットについて:
MNIST データセットは誰もが自由に利用できるオープンデータです。多くの研究者にニューラルネットワークの良さを評価するためのベンチマークとして使われています。MINIST データをニューラルネットワークで学習し、学習に使っていないテストデータで数字を予測してみましょう!
MNISTデータセットでは、下の図のように、0 から 9 までの 10 種類の手書き風の文字がかかれたグレースケール画像と、各画像に付いた「0から9までの数値」の正解ラベルがセットになっています。画像になんという数字が書かれているかを学習し予測する課題に用いることができます。

なお、画像のサイズは 28×28 pixel で、各画素には0~255の値が割り当てられていて、0は白で255は黒として一般に扱われます。

計 7万組の画像と正解のラベルデータが利用できるようになっているので、そのうち、6万組を学習データ、1万組をテストデータとして利用します。
人工知能のモデルの学習と予測について:
学習データとした画像と正解ラベルを使って、人工知能のモデルを学習します。具体的には、学習データとして与えられた画像に対し、正解ラベルに近い値が出るように、パラメータを調整します。

学習したモデルに、テストデータとした画像を入力したときの予測結果を、その正解ラベルと比べ、予測の正解率(accuracy) を求めます。この正解率は「なんという数字が書かれているかを画像を正しく予測できた割合(%)」を表しています。

学習データの画像を正しく予測できた割合と、テストデータの画像を正しく予測できた割を求めますが、特に、テストデータ(学習につかっていない)の画像の正解率が、モデルを評価する上で重要になります。
具体的には、以下のような順でプログラミングを行います。モデルの構造を変更することで、テストデータの正解率が何%まで上がるかを挑戦してみてください。
- 利用する Keras などのライブラリを使えるように読み込む(インポート)
- MINISTデータセットの読み込みと準備
- ニューラルネットワークのモデルの準備
- 学習データを使ったモデルの学習
- テストデータの正解率や学習経過の評価