CNN(畳み込みニューラルネットワーク)といえば画像認識技術では定番のモデルですよね。しかし、自身で一からプログラミングして機械学習をするのは難しいです。実は現在ではPythonのライブラリである「Keras」を利用すればCNNは簡単に実装できるようになりました。
機械学習を学んでいく過程ではCNNは非常に重要であり、これを発展させた手法やモデルも存在しているので、初心者にはぜひ習得しましょう。そこで、今回は機械学習の初心者に向けて、KerasでのCNN構築が学べるおすすめを書籍5冊紹介します。
Kerasとは何か
書籍についての紹介を行う前に、まずはKerasとはどのようなものなのか以下で簡単に説明しましょう。KerasとはGoogle社のエンジニアによって開発されたニューラルネットワークライブラリです。
そのため、機械学習をこれから習得しようとしている人や始めたての人にとっては、非常に使いやすいでしょう。また、Kerasは機械学習の際によく利用されるプログラミング言語「Python」で作られており、無料で使用できます。
ただし、現在ではKerasはGoogle社のディープラーニングフレームワークである「TensorFlow2.0」などに格納されており、TensorFlowから呼び出して利用(通称tf.keras)されています。もちろん、過去の独立したKerasを利用できますが、基本的にはTensorFlow2.0を使うことがおすすめです。
それでは、次の章ではKerasで具体的に何ができるのか説明します。
Kerasで何ができるのか
Kerasを利用すれば以下のことができます。
- 画像認識
- 文章の生成
- 試作品の作成
まず、1にあるようにKerasを利用すれば画像認識ができます。これは判別するもののデータなどを用意し、KerasでCNNを構築して機械学習させて簡単に実現可能です。これによって、画像を判別させ、画像から情報を読み取らせることができるでしょう。
この場合は訓練データとテストデータを画像で数万程用意してKerasで学習していけば、数字を読み取る画像認識ができるようになります。他にも特定の花のデータを同じように用意してKerasで学習させれば、画像から花弁の長さなどを分類し、どの花なのかを特定できる画像認識が可能になります。
次に、2にあるように文章の生成もKerasならできます。これはあらかじめ文章を学習させて、特定の文章を入力すると続きを自動的に生成するプログラムを開発でき、こちらを上手く使えば、簡単な質問などを回答してくれるbotなどを作成できるでしょう。
最後に、3にあるようにKerasを利用すれば試作品の作成がすぐできます。というのもKerasは非常に優秀なニューラルネットワークライブラリであり、初心者にも扱いやすく、機能面も充実しているためです。
これは扱いになれた熟練者にとっては機械学習を利用した製品の開発を行う際に、すぐに実装に移れるというメリットがあります。そのため、試作品を作る際にはKeras利用するのが時間を節約できるのでおすすめです。
Kerasについての説明はここまでにして、以下ではKerasで構築できるCNNの説明を行いましょう。
CNNって何?
このCNN(畳み込みニューラルネットワーク)とは正式には「Convolutional Neural Network」と呼ぶもので、ニューラルネットワークに畳み込みとプーリングと呼ばれる処理を行っていることが特徴です。多くの場合で画像に対して利用され、ネットワークの層を深くすればするほど精度が高くなります。
また、この畳み込み層での処理結果を受けてプーリング層では、特徴に関係のない部分の情報を削る作業を行います。この作業によって情報量を少なくしながら、元の情報の特徴をより強くすることが可能です。
CNNではこの2つの処理を何回も行って情報の特徴を掴み、そこから何らかの判断を出力します。例えば、犬の画像をCNNを使って機械学習させると犬の特徴を読み取れ、学習を進めればどのような画像を入力しても犬だけを識別できるシステムを開発できます。
現在ではこのCNNを応用して別の分野でも活用できるようにしたモデルも登場しているので、機械学習を習得する上でCNNは必須です。KerasではこのCNNを簡単に構築できるので、初心者はKerasを通してCNNを理解しましょう。
KerasでのCNN構築が学べるおすすめ書籍5冊
それでは、KerasでのCNN構築が学べるおすすめ書籍を以下の5つ紹介しましょう。
- 物体・画像認識と時系列データ処理入門
- scikit-learn、Keras、TensorFlowによる実践機械学習 第2版
- TensorFlow2 TensorFlow&Keras対応 プログラミング実装ハンドブック
- Pythonディープラーニングシステム実装法-Kerasによる画像・一般データ分類システムの構築-
- PythonとKerasによるディープラーニング
まず、1の「物体・画像認識と時系列データ処理入門」はKerasとTensorFlow2、PyTorchを利用してディープラーニングを基礎から解説している書籍です。内容はディープラーニングとはどのようなものなのかということからスタートし、CNNなどのモデルやPythonでの実装などを詳しく説明します。KerasでのCNN構築に役立つだけなく、その他のライブラリについて理解できるのでおすすめです。
次に、2の「scikit-learn、Keras、TensorFlowによる実践機械学習 第2版」は機械学習の書籍を多く刊行しているオライリー・ジャパンの書籍です。こちらは機械学習の基本的な内容や分類、モデルなどを説明した上で、実践的な内容を解説していることが特徴です。なお、機械学習はscikit-learn、ディープラーニングはKerasで実装しているので、両者のライブラリを扱いたい人に向いているでしょう。
また、3の「TensorFlow2 TensorFlow&Keras対応 プログラミング実装ハンドブック」は、PythonのライブラリであるJupyterNotebookを利用して、TensorFlowとKerasの活用方法を解説した一冊です。機械学習やPythonの基本を説明した上で、最終的にKerasでのCNNの構築などを行っています。本書では初心者が躓きやすい環境構築についても説明されているので、そのあたりが心もとない人におすすめ。
そして、4の「Pythonディープラーニングシステム実装法-Kerasによる画像・一般データ分類システムの構築-」は、Tensorflowに格納されたKerasを対象として、画像分類システムや一般データ分類システムの構築方法を説明する書籍です。
こちらは内容が初心者よりも中級者以上を対象にしており、ここまで紹介してきた中では難易度の高い書籍になっています。そのため、学んでいく中で初心者から脱却したい人におすすめの一冊です。
最後に、5の「PythonとKerasによるディープラーニング」は、Kerasの開発者による書籍を翻訳したものです。発行されたのは少し前ですが、現在も多くの人から支持されている名著です。本書はKerasによるディープラーニングを基礎から応用まで、内容を濃くして作ってあるので、丁寧に学びたい人にうってつけの一冊に仕上がっています。
KerasでのCNN構築で気をつけるべきこと
それでは、KerasでのCNN構築で気をつけるべきことを説明します。ここまでの内容で初心者にもわかりやすいKerasであれば、CNNを簡単に構築できると感じるかもしれません。
ただし、これはKerasでCNNを構築していく中ではデメリットにもなり得ます。なぜならKerasは金属の鋳造のように決まった型に流しこんでCNNを作成する性質を持っているため、独自性やカスタマイズ性に欠けるというデメリットがあるからです。
例えば、あるシステムを開発する中でKerasを利用してCNNを構築した場合では、記述が簡単である点はメリットです。しかし、他のシステムにない独自性を出す場合には、ある程度細かく調整する必要があります。
これを行うにはKerasよりも他のフレームワークを利用した方が、より高性能のシステムを開発できることがあります。具体的にはKerasと関係の深いTensorflowであれば、より詳細にチューニングできるので、実際にシステムを確立する際にはTensorflowを利用するべきでしょう。
どちらもPython上で動作するので、使い分けをしながら両者を上手く活用していけばデメリットをなくし、メリットを享受して開発を行えます。このようにライブラリやフレームワークによって強みと欠陥があるので、初心者のみなさんはぜひKerasだけでなく他のものにも触れ、良いとこどりができるように知識を増やしましょう。
さて、今回は機械学習の初心者に向けて、KerasでのCNN構築が学べるおすすめの書籍の紹介や以下の内容についてお伝えしました。
- KerasとはGoogle社のエンジニアによって開発されたニューラルネットワークライブラリ
- Kerasを利用すれば画像認識や文章の生成、試作品の作成などを簡単に行える
- CNN(畳み込みニューラルネットワーク)とは畳み込み層とプーリング層で情報の特徴をつかみ、いらない部分は削除して小さくしていくニューラルネットワーク
- CNN構築が学べるおすすめの書籍としては「物体・画像認識と時系列データ処理入門」や「scikit-learn、Keras、TensorFlowによる実践機械学習 第2版」、「TensorFlow2 TensorFlow&Keras対応 プログラミング実装ハンドブック」、「Pythonディープラーニングシステム実装法-Kerasによる画像・一般データ分類システムの構築-」、「PythonとKerasによるディープラーニング」の5冊がある
- Kerasで構築したCNNは他のライブラリと比較して、独自性やカスタマイズ性に欠けるというデメリットがある
KerasでCNNの構築は初心者にできるぐらい易しいことですが、もちろん最低限の知識は必要になりますので、何かでつまづいた際には紹介した書籍を手に取って、疑問が解決できないか試してみましょう。
そうすれば今よりも機械学習のスキルを確実に向上させることができるに違いありません。
【お知らせ】
当メディア(AIZINE)を運営しているAI(人工知能)/DX(デジタルトランスフォーメーション)開発会社お多福ラボでは「福をふりまく」をミッションに、スピード、提案内容、価格、全てにおいて期待を上回り、徹底的な顧客志向で小規模から大規模ソリューションまで幅広く対応しています。
御社の悩みを強みに変える仕組みづくりのお手伝いを致しますので、ぜひご相談ください。