福井大学 学術研究院工学系部門 研究報告 第 69 巻 2020 年 10 月
Mem. Fac. Eng., Univ. Fukui, Vol. 69（ October 2020 ）1

Python でらくらく Deep Learning－Python の深層学習ライブラリを使う－
平田 隆幸*Learn Deep Learning with Python without Difficulty－Usage of Python Library of Deep Learning－
Takayuki HIRATA*(Received September 28, 2020)
Deep learning is one of the key concepts of neural networks in machine learning.

Powerful

libraries of Python are available for deep learning programming. In the field of pattern recognition,
Python is a standard programming language.

User-friendly tools are provided by many user groups.

Here, I will show some useful software development tools for the beginners who are not familiar toboth Python and deep learning.

Furthermore, I will introduce the deep learning tool that enable

users to construct AI applications without programming.
Key Words: Deep Learning, Neural Network, Python, Keras, Artificial Intelligence.

1. はじめに体験できるようになった．ハードウェアに関しても，一般的な PC でさまざまなことができるようになっ Deep Learning（深層学習）は，現在のキーワード[1]てきた．PC の CPU だけでなく，GPU を使って高速にさえなってきた ．Google のチーム が開発した処理が可能となってきた．ここで，１）CPU のみで

AlphaGo [2]が，囲碁の人間のヨーロッパチャンピオン

の 実 装 ， ２ ） CPU ＋ GPU で の 実 装 ， ３ ） Googleに勝利し，さらに，元世界チャンピオンである李世Colaboratory を使うことにより，Web 上で深層学習

ドル，世界ランキング 1 位の柯潔を打ち破ったことを手軽に体験できるのをみていく．

は衝撃を与えた．AlphaGo は，人間のプロに棋譜をさらに，科学者のコミュニティを越えた社会の話

学習（教師付き学習）して強くなった．さらに，人題になっている量子コンピュータ [4]も深層学習の分間の棋譜を使わず強化学習により，自己対戦のみで野への応用が期待されている．

強くなった AlphaGo Zero が，AlphaGo を 100 対 0 で[3]

本論文では，Python をもちいた深層学習を工学部打ち負かした ．AI（人工知能）が，人間の手本無しの学生が簡単に学べるようになるにはどうすれば良に知的ゲームで人間を越えたことは，象徴的なできいのかについて考える．Programming が苦手であるごとであった．

と感じる学生が深層学習を学ぶ入り口になることを

AlphaGo Zero を含めた AlphaGo においても，ニュ

願う．

ーラルネットワークの学習方法に Deep Learning が用いられている．Deep Learning の発展によって，AI

2. ニューラルネットワーク

が多くの分野で採用されるようになった．そして，
さまざまな領域で AI が人間を超えてきている．
ライブラリを使うことで容易に Deep Learning を

2.1 ニューロン
 ニューラルネットワークは，ニューロン（神経細胞）によって構成されたネットワークである．最初* 大学院工学研究科知能システム工学専攻に，情報処理素子としてのニューロンを考えよう．

* Human

もっとも単純なニューロンのモデルは，マカロック

and Artificial Intelligent Systems Course,

Graduate School of Engineeringとピッツの形式ニューロン[5]である．

2

 マカロックとピッツの形式ニューロンは，多入力一出力の情報処理素子である．最も簡単な 2 入
力 1 出力の形式ニューロンを考える（図１参照）．
ここで，シナプス結合に対応する重みを w1，w2 とする，入力信号を x1，x2 とし，出力信号を y とする．形式ニューロンは，入力によって発火するかどうかの閾値 h をもっている．ニューロンへの入力に重みを掛けた総和 z = w1・x1＋w2・x2 ≧h の場合，出力 y=1 となり（発火），それ以外は y=0 の2 値をとる．ニューロンの出力は，シナプス結合を介して，次のニューロンに入力される．

 入力が閾値を超えると，ニューロンは興奮状態になり，発火する．それゆえ，ニューロンが発火するかどうかを決定する閾値は，重要なパラメータである．マカロックとピッツの形式ニューロンでは，

閾値 h という 1 パラメータによって，出力が決まるステップ関数がもちいられている（図２-a 参照）．
より一般的には，ニューロンが発火するかどうか決める関数として，活性化関数が使用されている．
ニューラルネットワークの学習において，活性化関数は重要な役割を果たす．典型的な活性化関数，ステップ関数とシグモイド関数の例を図２に示す．なお，ステップ関数とシグモイド関数以外にも，ソフ
トサイン，ReLU 関数などが活性化関数としてもち
形式ニューロンは，
マックローチ・ピッツ()の形式ニx1

いられている．

ューロン．



w1

y
h

 ニューラルネットワークとは，人間の脳を模して情報処理させようと研究が始まった（参考書として，

w2x2

2.2 ニューラルネットワーク

先駆的日本人研究者も甘利氏の神経回路網[6]）．ニューラルネットワークは，ニューロン（神経細胞）の挙動をモデル化した人工ニューロンを複数個の結合させたものである．人間の脳をモデルに並列処理に

図１ マカロックとピッツの形式ニューロン．ここより，高度な情報処理の実現を目的としている．並で，x1，x2 は入力信号，y は出力信号，w1，w2 は列処理，例えば画像処理など，が得意なのが特徴でシナプス結合の重みを表す．

ある．
 結合させたニューロンで構成されたニューラルネ
ットワークに目的とする情報処理をさせるためには，

a)

学習が重要である．ニューラルネットワークの学習

代表的なものとして，ステップ関数とシグ1モイド関数が示されている．

によく使われるが機械学習である．深層学習は，ニy 活性化関数の例を図２に示す．ここではューラルネットワークの機械学習の一つである(初歩的かつ網羅的な参考書として[7])．図３に，機械学
習，深層学習の包含関係図を示す．次に，ニューラ
ルネットワーク，機械学習，深層学習と順にみてい
く．

0
z
b)

Deep Learningy1

Machine Learning

Learning Algorithm

0z

図２ 活性化関数 u(z)の例．a)ステップ関数出力，b)
シグモイド関数．

図３ 深層学習とは（概念図）．

3

 機械学習は，データを学習して，分類や予測など

Neural Networks（以降 RNN と略す）と比べてみる．

をおこなえるアルゴリズムやモデルを自動的にコン

RNN は，音声認識など時系列解析によく使われる．

ピュータが構築できるようにするものである．機械

一方，CNN は，画像認識などある時刻でのパターン

学習は，学習方法のより，答えを教えずに学習させ認識を得意とする．それぞれが得意とする分野で使る「教師なし学習」，正解を与えた状態で学習させる

い分けられている．

「教師あり学習」，「強化学習」の３つに分けること Deep Learning をニューラルネットワークの応用とができる．ライブラリを使った Python による機械学

いう観点から見てみよう．医療分野における画像診

習の本も多く出版されている[8][9]．

断（CT, NMR）で，病巣部を見つける のに Deep さて，深層学習とは，機械学習の一つである．深

Learning の技術は利用されている[参照，review paper

層学習は，画像認識，音声認識，完全情報ゲームの[10][11]

アルゴリズムなどの分野で使われている．ニューラ

利用するに留まらず Deep Learning によって飛躍的

ルネットワークという観点からも現在注目を集めてに向上した．乳癌のスクリーニング検査において，]．AI を使った医療画像診断は，AI を補助的にいる，畳み込みニューラルネットワーク，リカレン

AI システムは，一般の医師のみならず熟練した専門

トニューラルネットワークの学習に，深層学習が用医より良い成績を達成した[12]．

いられる．
 ニューラルネットワークには，ニューロンの結合

3. Deep Learning とは様式によっての様々なものがある．ここでは，畳み込みニューラルネットワーク，リカレントニューラ

 Deep Learning とは，多層化したニューラルネット

ルネットワーク，そして GAN など代表的なニューワーク(最低 4 層以上)を機械学習させることである

ラルネットワークを順に見ていく．

(例えば，review 論文[13])．ここで，ニューラルネット

2.3 さまざまな Neural Networks

ットワークにおける学習とは，シナプス結合の重み Convolutional Neural Networks（畳み込みニューラ

を変えることである．学習によりシナプス結合の重ルネットワーク）や Recurrent Neural Networks（回帰みを最適化し，システムに実現したい task を達成さ

ワークの学習について考えてみよう．ニューラルネ

型ニューラルネットワーク）以外にも，全結合ニュせることである．
（AlphaGo の例でいうと，実現したー ラ ル ネ ッ ト ワ ー ク モ デ ル な ど 多 く の Neural

い task とはもっとも勝利の確率が高い手（最善手）

Networks モデルがある．

を選ぶことである．）

 最初に，Convolutional Neural Networks（以降 CNNと略す）をみていこう．ニューラルネットワークの歴史は古い．1950 年代には，パーセプトロンによる第 1 次のブームが，1980 年代には，アルゴリズム「バックプロパゲーション」，多層パーセプトロン，畳み込みニューラルネットワーク(CNN)などによる第 2次のブームが起こっている．CNN の歴史は，ブームとともにあった．ニューラルネットワークとしては，
決して新しくはない．しかし，コンピュータの計算能力が限られていたため，初期の CNN はニューロ

Residual Network(ResNet）
Convolutional Neural Network(CNN)
Neural Networkン層が多くなかった．
 現在のブームは，コンピュータの計算能力の向上

図４ 畳み込みニューラルネットワーク．

により，多層のニューラルネットワークモデルが可能となって，第 3 次のブームになったといえる．例

 多層化という視点からニューラルネットワークのえば，AlphaGo は多層のニューラルネットワークを発展の歴史を振り返ってみよう．ニューラルネット

学習させることつまり Deep Learning によって，棋力

ワークは，層を増やすことにより複雑な処理を実現の向上を実現している．Alpha GO は，強化学習(Aし て き た 【 簡 単 に 言 え ば ， 多 層 化 つ ま り Deep

reinforcement learning (RL))と 13 層の policy network

Learning(深層学習)である】．しかし，層を多くすること value network の２つの neural network を用いて，とには，メリットばかりではなく，デメリットも存プロ棋士越えの棋力を実現している．

在する．それは決定しなければならないパラメータ 次に，得意な応用分野という観点から Recurrent（シナプス結合の重み w）の数が増大することであ4

る．それゆえ，多層のネットワークおけるシナプス

4. Deep Learning で画像処理

結合の重みを更新する方法が重要になってくる．この問題を解決するために，現れたのが逆誤差伝搬 Python を使った Deep Learning による画像認識（back propagation）と畳み込みニューラルネットワ

をみていく．Keras[19]は，TensorFlow または CNTK，ークモデルであり，ニューラルネットワークの研究

Theano 上で実行可能な Python の高水準のニューラを大きく前進させた．
 さらに，畳み込みニューラルネットワークにおいルネットワークライブラリであり，深層学習ライブ
ラリとしてよく使われている．ここでは，Python のて，より多層化することでニューラルネットワーク

ライブラリを使うことにより，簡単に画像認識がでの性能を向上させることが試みられた．特徴抽出をきることを紹介する．具体的には，2 種類の開発環境

考えた場合，層を重ねることにより，一般的には，のもとで Python のプログラムを実行する：１）IDLE

より複雑な特徴の抽出ができることが期待されるかを使って PC の terminal 上で走らせる，２）Google のらである．Convolution 層はフィルタを持ち，Pooling

Colaboratory を使って Web 上で走らせる．データセ層と組み合わせて特徴を検出する役割を持たせるのットとして CIFAR-10 を使い，Keras を用いて画像のである．低・中・高レベルの特徴を多層形式で自然分類を実行してみよう．

に統合し，認識レベルを強化することができた．このようなネットワークの代表的な例として

4.1 画像データセット(CIFAR-10)

ImageNET[14]，AlexNET[15]などがある．

CIFAR-10 データセット[20]とは，機械学習の研究に2014 年 の 画 像 認 識 の 分 野 で ト ッ プ を 争 う

もっともよく用いられる画像データセットである．

ImageNet コンペティションにおいて，複数の部門でCIFAR-10 データセットは，10 のクラスに分類され優秀な成績をおさめたモデル（VGG モデル

[16]

）は，

た分解能が 32×32 の 60000 枚のカラーイメージか多層の CNN であった．層の数を 16 層や 19 層までら構成される．それぞれ，１クラスに付き 6000 枚の深くしたのだ．それで Very Deep と名付けられていカラーイメージを含んでいる．テスト用のものは，た．また，2014 年の the ImageNet Large-Scale Visual

それぞれのクラスからランダムに選ばれた 1000 枚

Recognition Challenge 2014 (ILSVRC14)で勝利を飾っのイメージから構成されている．訓練用のものは，た GoogLeNet[17]も 22 層だった．

残りからランダムな順に選んでつくられている．訓コンピュータの計算能力の向上により，CNN の層を増やせるようになってきた．しかし，CNN の層を練用の batch は 5000 枚のイメージから成り立っている．

増やすだけでは限界が来た．層を更に深くする試み

CIFAR-10 Dataset

はあったものの，思い通りに学習が進まなかったのである．さらに，単純に層を増やすと，性能が悪化することが報告された．
効率よく多層化するために考えられたのが，現在もよく使われている ResNet[18]である．ResNet は，Microsoft Research( 現 Facebook AI Research) のKaiming He 氏が 2015 年に考案したニューラルネッ
トワークのモデルである．ResNet は「ある層で求める最適な出力を学習するのではなく，層の入力を参照した残差関数を学習する」 ことで最適化しやすくしている．これを，ResNet では，残差ブロックとShortcut Connection を導入することで実現している．
残差ブロックでは，畳込み層と Skip Connection の組



み合わせになっている．ResNet は，残差ブロックを

図５ CIFAR-10 の画像データ例（文献[20]より引用）．

導入することで，層の深度の限界を押し上げ，精度向上を果たした．2015 年において ResNet は 152 層

図５に CIFAR-10 データセットのサンプル例を示まで深くすることが出来た．Very Deep の 16，19 層

す．飛行機，自動車，鳥，猫，鹿，犬，カエル，馬，や GoogLeNet の 22 層と比較すると，層が深くなっ

船，トラックの 10 のクラスがある．Python version，

たことが分かる．

Matlab version，binary version が公開されている．画

以上，CNN と多層化について概観した．

像分解能が 32×32 で非常に軽いのも特徴であり，例

5

えば Python version は 163MB である．

- 16s 2ms/step
4.2 IDLE で Python を走らせる

Test loss: 0.7182457206726074
Test accuracy: 0.7627999782562256

Deep Learning を体験するため，開発環境として
IDLE を使って PC 上で Python を走らせた．2020 年訓練されたモデルが keras_cifar10_trained_model.h5

9 月 20 日時点での，最新の安定な Python の version

として保存され，約 76％の精度で，分類に成功しては 3.8 である．しかし，version 3.8 の Python では，いることが分かる．

Keras 2.3.1 は 動 か な い 場 合 が あ る ． そ れ ゆ え ，Keras2.3.1 をスタンドアローンで走らすため，PC のPython version を Python 3.7 で動作させた．なお，2020
年 6 月 18 日に，Keras 2.4.0 がリリースされている．

4.3 Google Colaboratory
Colaboratory は，Web 上で Python を走らせることができるアプリケーションである[21]．

しかし，バックエンドとしては TensorFlow のみの対応となっており，Keras は TensorFlow 2.0 とのパッケ
ージ，tensorflow.keras として配布されている[19]．

a) モデルの決定 さ まざ まな ラ イブ ラリ を使 うた め ， Python のversion を変えてプログラムを走らせるように ，Anaconda の仮想環境を作成した．以下に，Anacoda
Prompt にて以下のコマンドを実行する手順を示す．
① Anaconda 仮想環境の作成
conda create --name=py37 python=3.7② 仮想環境「py37」の有効化
activate py37
環境が切り替わると Anacoda Prompt に(py37)と表示される．

b) トレーニング

 Python 3.7 が走る環境で，cifar10_cnn.py を走らせた．

c) 分類の結果

図 ６  Anaconda Prompt で Keras の example のcifar10_cnn.py を走らせている様子．
 最終的に得られた結果を以下に示す．


Saved

trainedmodel

atC:¥Users¥81904¥Desktop¥keras2.3.1¥examples¥saved_models¥keras_cifar10_trained_model.h5
10000/10000 [==============================]

図 7 Google Colaboratry の機械学習のチュートリア
ルのスナップショット．機械学習の例，画像分類の再トレーニングで，Keras モデルで花の分類をおこなっている様子を a)-c)で示している．

6

Google のアカウントを持っていると，Web 上で

47s 30ms/step - loss: 0.8121 - accuracy: 0.7338 - val_loss:

Colaboratory にアクセスできる．ノートブックを使っ

0.7903 - val_accuracy: 0.7485て，Python のコードを記述し実行できる．Colaboratry

Epoch 100/100の ノ ー ト ブ ッ ク は ， Colaboratory が ホ ス ト す る

1563/1563 [==============================] -Jupyter ノートブックである[22]．なお，Anaconda デ

47s 30ms/step - loss: 0.8069 - accuracy: 0.7348 - val_loss:ィストリビューションで PC に Python をインストー

0.6688 - val_accuracy: 0.7797

ルすると，Jupyter ノートブックを使用できるようにSavedなるので，多くの Python ユーザーにはなじみ深いも/content/saved_models/keras_cifar10_trained_model.h5のかもしれない．

10000/10000 [==============================]

 Colaboratory にアクセスすると，左側の目次の欄に- 2s 191us/step

機械学習および機械学習の例という項目が出てくる．

Test loss: 0.6688448459625244

機械学習の例では，機械学習のチュートリアルが準

Test accuracy: 0.779699981212616

trainedmodel

at

備されている．機械学習のチュートリアルとして，
画像分類の再トレーニングで，Keras モデルで花の分

以上のような結果が得られた．訓練されたモデルが類を Python を使って体験できる（参照，図７）．
さて，Web 上の Colaboratory で Deep Learning のモ

keras_cifar10_trained_model.h5 として保存され，約78％の精度で，分類に成功していることが分かる．

デル cifar10_cnn.py を走らせてみよう．なお，ノート
ブックの設定で，ハードウェアアクセラレータで5．プログラミング無しで Deep Learning

GPU を選択しておこう．ニューロン数が少ない小さなニューラルネットワークモデルなどの場合を除き，

Python を使って，簡単に Deep Learning を用いた画計算に要する時間がハードウェアアクセラレータ

像処理が可能であることを見てきた．しかし，Python

NONE の時と比較して大幅に短縮される．

のプログラミングは必要であった．Deep Learning

Keras の cifar10_cnn.py をノートブックに貼り付けを使った画像処理には，プログラミングが必要なのて実行した．

だ ろ う か ？ Sony が 提 供 し て い る Neural Network

Using TensorFlow backend.

とせずに Deep Learning を体験できる．次に，一歩進Console を使うことによって，プログラミングを必要
Downloading

data

from

https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz

んで，プログラミングなしで Deep Learning を体験できるのを見ていこう．

170500096/170498071[==============================] - 6s 0us/step
x_train shape: (50000, 32, 32, 3)50000 train samples

5.1 Neural Network Console とはSony の Neural Network Console[23]は，ドラッグ＆ドロップで簡単にニューラルネットワークの設計・10000 test samples

実行ができるアプリケーションである．Python を知Using real-time data augmentation.

らなくても Deep Learning を体験でき，プログラミン

Epoch 1/100

グなしで Deep Learning をもちいた AI アプリケーシ

1563/1563 [==============================] -ョンの開発を可能にしてくれる．

54s 35ms/step - loss: 1.8768 - accuracy: 0.3105 - val_loss:

Neural Network Console は，サインインすることで1.5757 - val_accuracy: 0.4338

Web から実行することができる．ID が割り当てられ，

Epoch 2/100

Neural Network Console Cloud (dl.sony.com)で設計・開1563/1563 [==============================] -発が実行できる．長時間のシステム利用を除いて，

48s 31ms/step - loss: 1.5857 - accuracy: 0.4207 - val_loss:

無料で，本格的な AI アプリケーション開発がおこな

1.3747 - val_accuracy: 0.5005

える．なお，Google Colaboratory と同様に，長時間使

Epoch 3/100

用する場合など有料のサービスも提供している．同……

時に，Sony は，ローカル PC で動作する Windows 版

中略の Neural Network Console も無償で公開している．

……

Windows 版を download することにより PC のローカ

Epoch 99/100

ル環境でも実行できる．なお，現在の最新のものは，1563/1563 [==============================] -2020 年 7 月 30 日リリースの Version 1.8 である．

7

5.2 Neural Network Console を使う
ロ ー カ ル PC で Windows 版 の Neural Network
Console を動作させた例を図８に示す．Sample projecta) モデル化の 01_logistic_regression.sdcproj が示されている．これは，プロジェクトを選択すると最初に現れるエディット画面である．Main という表示が出ている中央のコラムにモデルがグラフィックに示されている．
ここで，ドラッグ＆ドロップでモデルを構築していくことになる．ブロックを重ねたり，ラインで結ぶ
ことによって，モデルの動作順を決めることができる．プログラミングにおいて，フローチャートを描
くのに対応している．
次に，このプロジェクトを例に動作を見ていこう（図９参照）．最初に，a) グラフィックを使って，ドラッグ＆ドロップによってモデルを構築する，次に，b) run ボタンを押してモデルを学習させる，
最後に，

b) 学習

c) 学習したモデルで文字の判別をおこなう．
ここでは，手書き入力された２種類の数字 4 と 9の識別がなされている．入力文字が 9 と認識されると 1 と出力し，そうでない場合は 0 と出力されるモデルになっている：2 値の出力．
図 9 の c) を見ると，上からの順に左の入力画像に対し，0，0，1，1 という出力，つまり 4，4，9，9 という判定が得られたこと が 分 か る ． こ れ は ， 図 ９ の a) モ デ ル 化 で ，BinaryCrossEntropy を使いと 2 値の出力が得られる
ように設計していることによる．また，学習の過程
が図９の b) のようにグラフで見ることができるよ
うになっているのも親切である．
手書き入力の判別モデル以外にも，CIFAR-10 の画
像データの分類を ResNet を使っておこなっているc) 評価

プロジェクトのサンプルが用意されている（resnet110.sdcproj）．ResNet 以外にも，Alexnet などを使いDeep Learning が体験できる sample が示されている．

図９ Neural Network Console の動作手順．a)モデル
化，b)学習，c)評価のステージが示されている．
6. おわりに

図８ Neural Network Console の sample project の例．

コンピュータプログラミングが苦手でも Deep
Learning を使ったさまざまな研究ができる可能性を

8示した．Keras などのライブラリを使うことにより，簡単に Deep Learning を使ったアプリケーションをつくれるようになってきた．
ここでは，Keras を取り上げたが，Python の Deep
Learning に関連したライブラリには Chainer，
PyTorch謝 辞 論文を執筆するにあたり，議論および有益なコメントをしてくださった髙田宗樹教授，および研究室のメンバーに感謝いたします．

…など多くのものがある．これらのライブラリは常に進化している．例えば，日本発(株式会社 Preferred

参考文献

Networks) の Chainer は ， 2019 年に開発終了 し ，[1] Y. LeCun, Y. Bengio & G. Hinton: Deep learning.

PyTorch へ移行した．また，ここで取り上げた Keras

Nature, 521, 436–444 (2015).

もスタンドアローンの Keras から TensorFlow 同梱版[2] D. Silver et al.: Mastering the game of Go with deepの「tf.keras」へと移行している．Keras は，3 つのバ

neural networks and tree search, Nature, 529, 484–489

ックエンド(TensorFlow, Theano, CNTK) が利用可能(2016).

でしたが，Keras 2 で開発はストップし，以降は[3] D. Silver et al.: Mastering the game of Go without

Tensorflow のみに対応し tf.keras へ移行した（[19]参human knowledge, Nature, 550, 354–359 (2017).
[4] F. Arute et al.: Quantum supremacy using a照）．
 AlphaGo で，Deep Learning が注目されるようになったことを述べたが，Deep Learning はますます身近

programmable superconducting processor, Nature,574, 505-511 (2019).

な技術なってきた．AlphaZero[24]では，囲碁・チェス[5] W. S. McCulloch &W. Pitts: A logical calculus of theだけでなく，日本の将棋についても応用されている．

ideas immanent in nervous activity. The bulletin of

さらに，Python を使って将棋 AI を簡単につくる本

mathematical biophysics, 5, 115-133 (1943).

[25]も出版されるようになってきた．このように，Deep Learning の壁はどんどん低くなり，学習しやす
くなってきている．さらに，プログラミングを必要とせず Deep Learning を使ったアプリケーションを[6] 甘利俊一：神経回路網の数理‐脳の情報処理様式‐, 産業図書, pp. 328 (1978).
[7] 山下隆義: イラストで学ぶディープラーニング
改訂第 2 版, 技術評論社, pp. 277 (2018).

設計・開発できる Neural Network Console を紹介し[8] クジラ飛行机，杉山洋一，遠藤俊輔: Python によた．本論文により，Deep Learning を学習してみよう

る AI・機械学習・深層学習アプリのつくり方, ソという壁がより低くなってくれる一助になればと思シム, pp. 399 (2018).
[9] A. Gèron 著 下田倫大 監訳 長尾高弘 訳: scikit-う．
 最後に，プログラミング技能は必要かということ

learn と TensorFlow による実践機械, オライリー・について考えてみる．少年ジャンプに連載されまたジャパン, pp. 539 (2018).

アニメ化されたので，目にした機会が多いだろう[10] M.I. Razzak, S. Naz, A. Zaib: Deep Learning forDr.STONE という漫画がある．Dr.STONE という漫画

Medical Image Processing: Overview, Challenges andは，「ある病気により」文明が失われて，原始時代か

the Future, In: Dey N., Ashour A., Borra S. (eds)

ら文明を再構築するというストーリーである．現在

Classificationの科学技術に基づいて物語は構成されている．物語

Computational Vision and Biomechanics, vol.26,のなかでは，真空管などをゼロからつくっていって

Springer, (2018).

in

BioApps.

LectureNotes

inいる．ここでは，Python のプログラムの中身を知ら[11] R. Miotto, F. Wang, S. Wang, X. Jiang, J. T. Dudley:

なくても，Deep Learning による画像分類ができるこ

Deep learning for healthcare: review, opportunitiesとを見てきた．同じように，トランジスタの動作を

and challenges, Briefings in Bioinformatics, Volume

しらなくてもコンピュータやスマートフォンを使える．これと同じであると思えば，プログラミングが19, Issue 6, November 2018, Pages 1236–1246, (2018).
[12] S. M. McKinney et al.: International evaluation of an

できなくても Deep Learning を使いこなせれば良い

AI system for breast cancer screening, Nature, 577,という考え方でも問題ではない．しかし，漫画

89–94 (2020).

Dr.STONE の状況を思えば，0 から Deep Learning の[13] J. Schmidhuber: Deep learning in neural networks:

プログラミングができればもっと楽しく AI などを

An overview, Neural Networks, Vol. 61, January,

学習できるのではないだろうか．最後に，さらに勉Pages 85-117 (2015).

強したい方のために Excel や Python を使った Deep
Learning の初歩的な参考書([26]-[28])をあげておく．

[14] J. Deng, W. Dong, R. Socher, L. Li, Kai Li and Li
Fei-Fei: ImageNet: A large-scale hierarchical image

9

database, 2009 IEEE Conference on Computer Vision
and Pattern Recognition, Miami, FL, pp. 248-255,(2009).
[15] A. Krizhevsky, I. Sutskever, E. Hinton:

ImageNet

classification with deep convolutional neural networks,
Proceedings of the 25th International Conference on
Neural Information Processing Systems (NIPS’12) Volume 1, pp 1097–1105 (2012).
[16]

K.

Simonyan,A.

Zisserman:

Very

Deep

Convolutional Networks for Large-Scale Image
Recognition, In ICLR, arXiv:1409.1556 (2015).
[17] C. Szegedy et al.: Going deeper with convolutions,
Proceeding of the 2015 IEEE Conference on Computer
Vision and Pattern Recognition (CVPR), pp. 1-9(2015).
[18] K. He, X. Zhang, S. Ren and J. Sun: Deep Residual
Learning

forConference

Image

on

Recognition,

Computer

Vision

2016

IEEE

and

Pattern

Recognition (CVPR), Las Vegas, NV, pp. 770-778(2016).
[19] Keras: https://keras.io/ja/#keras[20] CIFAR-10:
https://www.cs.toronto.edu/~kriz/cifar.html[21] Google Colaboratory:
https://colab.research.google.com/notebooks/intro.ipynb#[22] Jupyter: https://jupyter.org/[23] Sony Neural Network Console:
https://dl.sony.com/console/#/dashboard[24] D. Silver et al.: A general reinforcement learningalgorithm that masters chess, shogi, and Go throughself-play, Science, Vol. 362, 1140-1144 (2018).
[25] 山岡忠夫: 将棋 AI で学ぶディープラーニング，
マイナビ出版，pp. 277 (2018).
[26] 涌井良幸・涌井貞美: ディープラーニングがわ
かる数学入門, 技術評論社, pp. 239 (2017).
[27] 斎藤康毅：ゼロから作る Deep Learning －Python
で学ぶディープラーニングの理論と実装－，オラ
イリー・ジャパン，pp.298，(2016).
[28] Antonio Gulli (アントニオ・グッリ) ＆ Sujit Pal(サジット・パル)著，大串正矢，久保隆宏，中山
光樹訳：直感 Deep Learning –Python×Keras でア
イデアを形にするレシピ-，オライリー・ジャパン，
pp.309，(2018).