pythonは多様なライブラリ・フレームワークに対応しており、ディープラーニング・AI開発において、注目を集めているプログラミング言語です。
フレームワークを活用することで、開発工程の大幅な短縮やセキュリティの向上などさまざまな実務上のメリットがあります。
中でも、Kerasは簡単なコードとシンプルなAPIで素早くモデル構築できるので、機械学習・ディープラーニングのフレームワークとして近年人気が上昇しています。
とはいえ、世の中にはKerasの学習教材が溢れており、何をどのような本で学習を始めてよいか迷っている方もいらっしゃるのではないでしょうか?
そこで本記事では現役データサイエンティストとして日々データ分析に携わっている経験をもとに、Kerasを学習する際のおすすめの参考書を詳しく解説をしていきます。
監修者
經田 原弘
東京大学大学院新領域創成科学研究科複雑理工学専攻修了。大学時代は3次元の医療データの平滑化処理を研究テーマとし、大学院時代はJAXAと協業し、月探査機かぐやの衛星データから、月面上の水の存否について調査していた。新卒では株式会社リクルートにてレコメンドシステムの開発等に従事し、現在は製造業系スタートアップにてデータサイエンティストとして勤務。応用情報技術者試験・E資格合格者。
Kerasとは?
プログラミングでアプリケーションやシステムを開発するために必要な機能があらかじめ用意された枠組みのことです。
データ解析、機械学習、GUI開発など目的に応じてさまざまなフレームワークがあります。フレームワークを活用することで、プログラム開発を効率化したり、コードを簡略化することができるので、フレームワークの活用はプログラミングに必須といえます。
まずKerasとはどのようなフレームワークで、どのような場面で活用されているのかの確認から始めていきましょう。
Keras(ケラス)は簡単なコードとシンプルでわかりやすいAPIが特徴で、初めてディープラーニングに取り組む人でも簡単に理解・実装できるので、近年ディープラーニングのフレームワークとして人気が上昇しています。
機械学習・ディープラーニングで活用されるフレームワークは主に以下の3つです。
フレームワーク | 主な特徴 |
---|---|
Keras | ・モジュール化やユーザーフレンドリーがあり、拡張性がある ・簡潔なコードで書かれており、読みやすい |
TensorFlow | ・静的な計算グラフを採用しており、グラフを構築する際に最適化された計算グラフが生成されるため、高速に処理することができる |
pytorch | ・動的な計算グラフを採用しており、グラフを構築する際に自由度が高いため、柔軟性に優れている ・Numpyとデータ型が似ており、学習しやすい |
Kerasは画像認識、自然言語処理、音声認識などを行うためのディープラーニングモデル構築に活用されています。
さらに、KerasはTensorFlow、Microsoft Cognitive Toolkit、Theanoなどさまざまなバックエンドで活用できるので、バックエンドを切り替えることでモデルの学習速度や精度を向上させることができるようになります。
Kerasを学習する参考書の選び方
Kerasを学べる本は非常に多く出版されています。
自分に適した参考書を見つけるために、「選び方」を確認しておきましょう。まずは参考書を選ぶ際に必ずチェックしておきたい「2つのポイント」をご紹介します。
- 自分のスキルレベルに合っている
- 互換性のあるバックエンドも学習できる
ポイント①:自分のスキルレベルに合っている
Kerasの学習本は数多くあり、超入門レベルから専門技術書レベルまでさまざまな本が売られています。
初学者向けと謳いながらも、高度なアルゴリズムの知識を要したり、専門的な説明が多い本もあり、自身のレベルと参考書のレベルとマッチしているかをよく吟味する必要があります。
自身のKerasスキルを判断するヒントとして、編集部ではKerasスキルを3段階に分けた表を作成しました。
Kerasのレベルとスキルセット
レベル | できること |
---|---|
初級レベル | ・データの前処理:画像やテキストデータをモデルに適した形式に変換できる ・モデルの評価と可視化:学習したモデルの性能を評価し、学習曲線などの可視化ができる ・簡単なニューラルネットワークの構築とトレーニング:基本的な分類や回帰タスクの実行ができる |
中級レベル | ・CNN/RNNの構築:画像認識や自然言語処理などのタスクに適したより複雑なネットワークを構築できる ・事前学習済みモデルの利用:Kerasが提供する事前学習済みモデル(VGG16, ResNet, BERTなど)を利用して、転移学習やファインチューニングができる ・ハイパーパラメータチューニング:ニューラルネットワークのハイパーパラメータ(学習率、バッチサイズなど)を最適化して、モデルの性能を向上させることができる |
上級レベル | ・カスタムレイヤーやカスタム損失関数の実装:APIを拡張して、独自のレイヤーや損失関数を実装して、特定のタスクに適したモデル構築ができる ・ジェネレータを用いた大規模データセットの学習:大規模なデータセットやストリーミングデータを効率的な処理・学習ができる ・教師なし学習の実装:オートエンコーダーや生成敵対ネットワーク(GAN)などのアルゴリズムを活用して、画像やテキストデータの生成、データの次元削減、ノイズ除去などができる |
自身のKerasレベルを確認しながら、ひとつひとつを正しい順番で段階的に学んでいくと学習効率がよくなることが期待できます。
たとえば、初学者はニューラルネットワークの考え方やCNN・RNNの理解から学習した方がよいでしょう。一方、上級者はジェネレータの活用や教師なし学習などを学習すると、スキルアップができるでしょう。
まずは、上記表を参考に現在のKerasスキルを把握して、適切なレベルの参考書を選びましょう。
ポイント②:互換性のあるバックエンドも学習できる
ポイントの2つ目は互換性のあるバックエンドも同時に学習できることです。
Kerasはさまざまなディープラーニングフレームワーク(バックエンド)をサポートしており、主にTensorFlow、Microsoft Cognitive Toolkit(CNTK)、Theanoなどがあります。
バックエンドの仕組みを理解していると、エラーの原因を特定できるようになったり、場面に応じて最適なアルゴリズムを選択できるようになるので、モデルの学習速度や精度を向上させることができるようになります。
2023年4月時点では、TensorFlowが最も使われているバックエンドです。TensorFlow 2.0以降では、Kerasが統合されており、tf.kerasとして利用できるようになりました。
そのため、バックエンドのなかでも、TensorFlowを同時に学習できる参考書がおすすめです。中でも、本書はTensorFlowだけでなく、重要なライブラリであるscikit-learnも学習できるので、非常におすすめです。
2023年4月現在、Kerasに加えて、TensorFlow・scikit-learnも併せて学習できる参考書はほかにありません。機械学習・ディープラーニングをマスターしたい方はバックエンドの学習もできる本書が非常におすすめです。
Keras学習おすすめ参考書4選
ここからは編集部が厳選したKerasを学べる良書を紹介していきます。
scikit-learn、Keras、TensorFlowによる実践機械学習 第2版
本書は3つの主要な機械学習のフレームワークとライブラリを組み合わせた実践的なアプローチを学習することができます。
Kerasだけでなく、scikit-learnとTensorFlowも併せて学習することで、ディープラーニングと従来の機械学習手法を統合した効果的なモデル構築ができるようになります。
たとえば、機械学習上級者がよく活用しているスタッキングやアンサンブル学習など高度な機械学習ができるようになります。
また、実践的な例題が豊富に取り上げられており、実際のデータセットを用いて手を動かしながら学習できるので、学習内容が定着しやすくなっています。
さらに、本書ではKerasをTensorFlowのバックエンドとして使用する方法も学習できます。これにより、KerasのAPIとTensorFlowの柔軟性を組み合わせた効果的なモデル構築ができるようになります。
機械学習・ディープラーニングに欠かせないライブラリ・フレームワークを基礎から本書1冊で学習できるので、初学者に非常におすすめです。
Pythonディープラーニングシステム実装法
本書はKerasを使ったディープラーニングモデルの基本的な構築から、画像データと一般データ(数値データ・テキストデータ・時系列データなど)の分類システム構築まで、実装方法をステップバイステップで学習できます。
画像データと一般データの両方に対応した分類システムの構築を学習できる点がほかの参考書と大きく異なるポイントです。
どちらのデータ型も学習できるので、データに応じて適切なディープラーニングモデルを構築できるようになります。
また、サンプルコードが少しずつレベルアップしていくという構成で書かれており、重要なコードを繰り返し学習できるため、学習内容が頭に定着しやすくなっています。
さらに、本書ではKerasの最新機能やトレンドも紹介しているので、最新の技術動向に迅速に対応し、効果的なディープラーニングシステムを構築できるようになります。
たとえば、Tensorflowと統合されたKeras2.4以降を学習できるため、実務のシステム環境に即して学習できるので、学習内容を容易に実務でもアウトプットすることができます。
PythonとKerasによるディープラーニング
本書は基本的なニューラルネットワークの構築から、複雑なモデルの実装や最新のディープラーニング技術まで、幅広いトピックが網羅されており、1冊でKerasの機能を網羅的に学ぶことができます。
たとえば、畳み込みニューラルネットワーク(CNN)、リカレントニューラルネットワーク(RNN)、オートエンコーダー、生成敵対ネットワーク(GAN)など、さまざまなモデルを実務の例を用いて学ぶことができます。
さまざまなモデルを学習できることで、自身の目的に応じたモデルを選択し、適切に実装できるようになります。
また、各章ごとに練習問題が設けられているため、実際に手を動かしながら学習を進めることができるので、学習内容が定着しやすくなっています。
TensorFlowとKerasで動かしながら学ぶ ディープラーニングの仕組み
本書はディープラーニングの基本的な概念から、畳み込みニューラルネットワーク(CNN)の仕組みまでを丁寧に解説しています。
また、KerasとTensorFlowを用いた実践的な演習問題も豊富に掲載されており、実際に手を動かしながら理論と実践を同時に学ぶことができます。
ただし、本書は畳み込みニューラルネットワーク(CNN)に特化した解説になっているため、画像認識や物体検出などに興味がある方には非常におすすめです。
また、Keras初学者でもわかりやすいように専門用語や概念についても丁寧に解説しているので、初心者でもつまずくことなく、学習を進めることができます。
まとめ
Kerasを学習する参考書の選び方のポイントやおすすめ参考書を紹介してきました。自分に合った参考書は見つかったでしょうか。
Kerasは簡単なコードとシンプルでわかりやすいAPIが特徴のディープラーニングモデルを構築できるフレームワークなので、モデル構築を効率的に行えるようになります。
そのため、データサイエンティストを目指す方にKerasの学習は非常に有益です。本記事が学習を始めるきっかけになれば幸いです。
編集部ではPythonに関連する記事も公開しています。Pythonに興味のある方はぜひこちらの記事もご覧ください。