AIとは何か

【初心者向け】ディープラーニング(深層学習)をPythonではじめよう

【初心者向け】ディープラーニング(深層学習)をPythonではじめよう

AI(人工知能)やロボットなんて、遠い未来の夢のように考えた人も多かったですが、もはや目の前の現実となっていますよねそんな中ディープラーニング(深層学習)は、AI(人工知能)の火付け役となり、自動運転や囲碁・将棋といった分野でニュースを賑わせています。

ディープラーニング(深層学習)をするならPythonというほど、今やディープラーニングとPythonは切り離せないものになっています。ディープラーニング(深層学習)をやってみたくてPythonを始めたという方や、業務でディープラーニング(深層学習)を使うことになったからPythonを始めたという方も少なくないでしょう。

そこで今回はPythonを触れて間もないもしくは触れたこともない初心者の方に向けて、ディープラーニング(深層学習)やPythonについて解説します。ディープラーニング(深層学習)の全体像や勉強法、どんなフレームワークを使えばディープラーニング(深層学習)ができるのかについて触れるので、最後まで読めばディープラーニングを始めるのに十分な知識が付くに違いありません。

ディープラーニング(深層学習)てなに

ニューラルネットワークのイメージ
ディープラーニング(深層学習)とは機械学習の手法の一種で、ニューラルネットワークと呼ばれる計算を拡張した方法で学習することを特徴としています。

ニューラルネットワークは、ヒトの脳内にある神経細胞であるニューロンの構造を真似て設計されています。たとえば神経細胞のニューロンへの入力として複数の刺激(x1, x2, x3)を与えると、ニューロンはその刺激それぞれに重みづけ(w1, w2, w3)を行います。これにより得られた刺激(w1x1+w2x2+w3x3)がニューロンに設定された閾値より大きければニューロンが反応するという仕組みです。

ニューラルネットワークの場合、入力層・隠れ層(数個程度)・出力層という3種類の層から成っており、教師データを入力層に入れると、重みづけをして次の層に渡すという動作を行います。そして、教師データに紐づけられた答えと出力層からの出力結果を比較し、答えと出力結果が同じと言えるようになるまで各層間の重みづけの修正を行い、繰り返し繰り返し計算します。

ニューラルネットワークには隠れ層が数個しかないのに対し、ディープラーニング(深層学習)では隠れ層が多数(数十から数百個)あります。これがディープ(深層)と言われる所以です。ディープラーニング(深層学習)はこのディープな構造による学習によって、これまでのソフトウェアでは成し遂げられなかったレベルの認識精度が出せるようになりました。

この非常に高い認識精度のおかげで、ディープラーニング(深層学習)は自動運転のような絶対にミスの許されない分野でも活躍することができるのです。

なぜディープラーニングをPythonで作るのか

ライブラリのイメージ

ディープラーニング(深層学習)はPythonの他、MatlabやC言語、Rなど様々な環境で試すことができます。そんな中、特にオススメするのがPythonです。

Pythonは可能な限り読みやすいプログラミングができるよう設計されています。このため、他の言語のような俗に「おまじない」と呼ばれるような初心者には何のために書かれているのさっぱりわからないコードがほとんど不要です。

例えば、何か文字を出力したければ「print(‘出力内容’)」と書くだけでいいですし、キーボードからの入力値を変数(hoge)に代入する際は「hoge = input()」で済んでしまうのです。

さらに、Pythonにはディープラーニング(深層学習)関係のライブラリが多数揃っています。ライブラリとはPythonの拡張キットのようなもので、これをインストールすることで標準では使えない機能が追加されます。

ディープラーニング(深層学習)は非常に高度な計算をするため、その計算手順1つ1つをプログラミングするのは現実的に不可能です。なので、ディープラーニング(深層学習)を利用する際には目的に合ったライブラリを探すしかなく、ライブラリの豊富さはできることの多さに直結します。

つまり、Pythonの文法の簡単さとライブラリの豊富さがディープラーニング(深層学習)でPythonを選ぶ決め手だと言えます。

ディープラーニングを学べるおすすめのwebサイトや書籍

Webサイトのイメージ

ディープラーニング(深層学習)を学ぶのにオススメの書籍は「深層学習(講談社 岡谷貴之著)」です。タイトルの通りディープラーニング(深層学習)について非常に詳しく、しかもわかりやすく書かれています。

この本を読めば、ディープラーニング(深層学習)の計算手法の全体像を掴むことができますし、実際にプログラミングする際の計算手法面での知識はバッチリです。ただし、大学の教科書のように非常にたくさんの数式が並んでおり、大学1年生レベルのベクトル計算が理解できる人向けです。

https://amzn.to/3a99qU4

もし数式はあまり得意ではないという方の場合、AI MIERUKA【人工知能(AI)】ディープラーニングの仕組み!中学生でもなんとなくわかる!【入門】が非常によくまとまっており参考にしましょう。数式は最小限に抑えられていながら、概要としては十分な内容です。

ディープラーニングに適したフレームワークとは

フレームワークのイメージ
ディープラーニングに適したフレームワークとしてぜひ紹介したいのがTensorFlowとPyTorchです。これらはディープラーニングの2大フレームワークと言われ、ここ数年の人気は拮抗しています。

TensorFlowは2017年にGoogleによって正式版が公開されました。Googleが自社用に作ったという経緯もあり、最先端の技術が詰め込まれています。2019年にはTensorFlow2が公開され、入門者向けの公式日本語ドキュメントも充実しました。参考図書も多数出版されており、他のディープラーニング系ライブラリと比べて情報収集が容易な点も魅力です。

対してPyTorchFacebookの人工知能研究グループによって開発されました。たくさんの研究者が利用しており、非常に高度なディープラーニングが実践可能にも関わらず、扱いやすさも両立いるライブラリです。

どちらも無料で利用できるのでそれぞれを触ってみて自分に合ったものを選びましょう。

ディープラーニングをPythonでプログラミングするメリット

プログラミングのイメージ

ディープラーニングを実行するプログラミング言語としてPythonを選ぶメリットは大きく2つあります。

1つ目のメリットは、非常に複雑な計算をしているディープラーニング(深層学習)を簡単に扱うことができること。Pythonが可読性を強く意識しており、非常にわかりやすい言語です。そこに加え、Pythonに用意されたディープラーニング(深層学習)系ライブラリも非常に扱いやすいものが揃っています。

2つ目のメリットは、機械学習用途でのプログラミング言語と言えばPythonというほど機械学習でPythonを使っている人が多いことです。使う人が多ければ多いほどPythonの使い方といった情報は入手しやすくなりサンプルコードもたくさん見つかります。また、新しい有力ライブラリの開発など将来さらに発展することが期待でき、せっかくPythonを使えるようになったのにPythonが廃れてしまった…なんて可能性が減るでしょう。

上記のようなメリットからディープラーニング(深層学習)を始める際にはPythonを選択することを強くオススメします

まとめ
さて今回は初心者向けにディープラーニング(深層学習)をPythonではじめることについて、以下のような内容で解説しました。

  • ディープラーニング(深層学習)とは機械学習の手法の一種で、ニューラルネットワークと呼ばれる計算を拡張した方法
  • 難しいディープラーニング(深層学習)だからこそ文法が簡単なPythonで作る
  • 数式に強い方は「深層学習(講談社 岡谷貴之著)」がオススメ、数式が苦手な方は「AI MIERUKA【人工知能(AI)】ディープラーニングの仕組み!中学生でもなんとなくわかる!【入門】」がオススメ
  • ディープラーニング(深層学習)のフレームワークはTensorFlowとPytorchを触って決めると良い
  • Pythonだとディープラーニング(深層学習)を簡単に扱える
  • ディープラーニング用途でPythonを使っている人が多いので情報が多く将来性も高い

ディープラーニング(深層学習)は難しいところもたくさんありますが、完成したプログラムは自分でも驚くほどのことができることでしょう。ぜひディープラーニング(深層学習)を習得し、色々なプログラムを作りましょう!

トップへ戻る
タイトルとURLをコピーしました