Kerasとは?特徴やできること、インストール手順を解説
最終更新日:2024/02/20
脳内の神経細胞(ニューロン)のネットワーク構造を模した数学モデルであるニューラルネットワーク。Kerasは、ニューラルネットワークの迅速な実験を可能にすることを目的として開発されたライブラリです。
画像認識や音声認識、文章の自動生成などさまざまな分野で扱われる機械学習やディープラーニングのモデル作成を比較的容易に行えるとして高い人気を持っています。
本記事では、Kerasの概要、できることや特徴のほか、ライセンスやインストール手順などについてお伝えします。
機械学習について詳しく知りたい方は以下の記事もご覧ください。
機械学習とは?種類や仕組み、活用事例をわかりやすく簡単に説明
Kerasとは
Kerasとは、Googleが開発したニューラルネットワークのライブラリです。Pythonで書かれたKerasは、「読みやすく簡潔なアーキテクチャで迅速に実装が可能であること」「機械向けではなく人間向けに設計されたユーザーフレンドリーなライブラリであること」を重視して設計されています。
Kerasは比較的、構造がシンプルで扱いやすいこともあり、機械学習やディープラーニングの初心者が実装や実験を行うのに適したライブラリです。Googleが開発していることもあって利用者も多く、情報共有をしながら習得していける点でも初心者向けのライブラリだといえるでしょう。
Kerasでできること
Kerasを使ってできる主なものとしては、「画像認識」「音声認識」「文章の生成」「botシステムの作成」などが挙げられます。ここでは、それぞれについて具体的に見ていきましょう。
画像認識
Kerasは、CNN(Convolutional Neural Network:畳込みニューラルネットワーク)とRNN(Recurrent Neural Network:再帰型ニューラルネットワーク)の両方もしくは2つの組み合わせをサポートすることが可能です。画像認識は、CNNを使って行います。
人の顔を特定する顔認証、画像内にある数字や文字を識別する文字認識、画像にあるものから主な物体を出力する物体認識など画像認識を使ったさまざまなことが可能です。
音声認識
CNNは画像認識だけではなく音声認識も行えます。たとえば、ノイズの多い会話から会話だけを残してノイズを除去することや、さまざまなジャンルの音楽を記憶させ、音楽のジャンル分けを自動で行わせることもできます。また、文字列を音声データに変換させることも可能です。
文章の生成
文章の生成は、RNNのLSTM(Long Short Term Memory:長・短期記憶)を使って行います。たとえば、ある特定の作家の小説を記憶させれば、小説で使われている単語を入力するだけでその作家が書いたような文章を自動で生成することが可能です。
botシステムの作成
文章の生成は、ビジネスにおいても効果的な活用が行えます。なかでも近年、多くの企業で利用されているのがbotシステムです。Kerasでは、seq2seqというサンプルプログラムを使い、チャットボットの作成も行えます。
顧客から寄せられるよくある質問とその回答を記憶させれば、チャットボットによる自動応答が可能になり、カスタマーサポートの負担軽減も可能になるでしょう。
Kerasの特徴
Kerasが多くの開発者やエンジニアに利用されているのにはさまざまな理由が考えられます。特に次に挙げるような特徴がほかのニューラルネットワークライブラリに比べ優れていることが、大きな理由でしょう。ここでは、それぞれの特徴について解説します。
シンプルで柔軟に利用できる
ライブラリとしてシンプルかつ柔軟に利用できるのは、Kerasの大きな特徴です。Kerasの設計理念の一つでもある、「機械ではなく人のために設計されたAPI」だからこそ、一貫性のあるシンプルなAPI、エラー発生時の明確で実用的なフィードバックなどを実現。誰が使っても使いやすく複雑な処理を必要としないのは、Kerasだからこその特徴といえるでしょう。
また、単純にシンプルなだけではなく、柔軟性を併せ持っているのもKerasが持つ特徴といえます。低レベルな深層学習言語であるTensorFlowと統合しているため、基本的な深層学習言語を理解していれば、容易に実装が可能です。
事業・研究の分野で幅広く活用されている
Kerasは個人ユーザーも多数存在していますが、Netflix、Uber、Squareなど誰もが知る企業のビジネスでも利用されています。ほかにも、深層学習が自社製品の核となっているいくつものスタートアップ企業で、Kerasは人気です。
また、CERNやNASAなど大規模な科学機関でも利用者は多く、科学技術論文で言及されるフレームワークのなかで、2番目に多く利用されるほどの人気を誇っています。
個人、事業、研究機関など幅広い分野で活用されているのも、シンプルかつ柔軟性の高いKerasの特徴といえるでしょう。
モデルの製品化が容易い
Kerasはほかの深層学習フレームワークに比べ、機械学習をした後の計算式、つまりモデルの製品化が容易いことも特徴の一つです。また、単純に製品化が容易いだけではなく、さまざまなプラットフォームで簡単にデプロイ(配置・展開)することもできます。
たとえば、次のようなプラットフォームでのデプロイが可能です。
- iOS(Apple’s CoreML経由)
- Android(TensorFlow Androidランタイム経由)
- ブラウザ(Keras.jsや,WebDNNなどのGPU利用が可能なJavaScriptランタイム経由)
- Google Cloud(TensorFlow-Serving経由)
- Pythonのウェブアプリのバックエンド
- JVM(SkyMindによって提供されたDL4J モデル経由)
- ラズベリーパイ
複数のバックエンドエンジンをサポートしている
Kerasは、「TensorFlow バックエンド (from Google)」「CNTK バックエンド (from Microsoft)」「Theano バックエンド」など、複数のバックエンドエンジンをサポートしています。また、組み込みレイヤーのみで構成されているkerasモデルでは、すべてのバックエンド間で移植することも可能です。
たとえば、一つのバックエンドを使用して学習したモデルを用い、別のバックエンドを使ってモデルをロードすることもできます。ちなみに前述した3つのバックエンドの概要は次のとおりです。
- TensorFlow:Googleが開発した機械学習のライブラリです。
- CNTK:Microsoftが開発した機械学習のライブラリです。
- Theano:カナダのモントリオール大学が主導して開発したPythonの科学計算ライブラリです。
また、Kerasモデルは、CPU以外で次のようなハードウェアプラットフォームで学習することができます。
- NVIDIA GPUs
- Google TPUs(TensorFlowバックエンドかつGoogle Cloud経由)
- OpenGLが使用できるAMDのようなGPU(the PlaidML Kerasバックエンド経由)
複数のGPU・分散学習をサポートしている
Kerasは、複数のGPU並列処理のための組み込みサポートが用意されています。また、Kerasモデルは、TensorFlow Estimatorsに変換することもできるうえ、Google ClousのGPUクラスターを用いた学習も可能です。
これらにより、利用者や仕事量が急激に増大した場合であっても柔軟に対応できるスケーラビリティを備えたライブラリだといえるでしょう。
ほかにも、最新のNVDIA GPUとTPUの混合精度学習をサポートしています。混合精度学習とは、半精度と単精度の演算を組み合わせて学習プロセスを高速化する手法です。そのため、学習と推論で最大2倍の高速化を実現します。
Googleをはじめとした有名企業が開発をサポートしている
AIやディープラーニング、機械学習の世界は常に進化を続けています。そのため、継続的かつ多面的な開発サポートが欠かせません。Kerasは、元々の開発元であるGoogleはもちろん、Keras APIはTensorFlowにパッケージされていて、MicrosoftはCNTK Kerasのバックエンド管理を行っています。
また、2022年現在、AmazonのAmazon AWSも、KerasのMXNetバックエンドの開発をサポート。さらにNVIDIA,Uber,Apple(CoreML)などもKerasのサポートを行っています。これにより、常に最新のニューラルネットワークライブラリとして、多様なサービスの提供が可能です。
Kerasと比較されるフレームワーク
Kerasとよく比較されるフレームワークにTensorFlowとPyTorchがあります。機械学習や深層学習のフレームワークは近しい部分もあれば、まったく異なる部分もあるため、自身で習得する際には、それらの違いは把握しておかなくてはなりません。
ここでは、自身が本当に必要なものを習得するためにも、TensorFlow、PyTorchの概要に簡単に触れたうえでKerasとの違いについて解説します。
TensorFlow
TensorFlowとは、Keras同様、Googleが開発した機械学習のフレームワークです。2015年にオープンソースとして公開、さらに2017年にTensorFlow1.0として正式版がリリースされ、2022年12月現在、最新版の2.0がリリースされています。
TensorFlowの主な特徴は次のとおりです。
- データの読み込みや前処理、計算・出力などの処理のすべてに前述したTensorを使用している
- 一般的にAI開発で使われるPythonのコアライブラリのほか、C++のコアライブラリやJavaScript向けのライブラリも提供されている
- 言語やデバイスを問わず、モバイルやIoT向けのTensorFlow LiteではAndroid以外にiOSでも利用できる
- 機械学習のフレームワークとしては利用者が多く、コミュニティでの情報共有が活発に行われている
- GPU操作が不要なため、効率的な開発が可能
TensorFlowとKerasでもっとも異なるのは、機械学習のフレームワークとニューラルネットワークライブラリという点でしょう。
近しい点としては、どちらもGoogleが開発元である点、2017年からはTensorFlowがKerasのサポートをしている点、そしてTensorFlowの最新版となる2.0ではKerasがTensorFlowに統合されている点です。前述したように、現在はKerasのバックエンドでTensorFlowが動作しています。
TensorFlowについて詳しくは下記記事で紹介しておりますので、あわせてご覧ください。
PyTorch
PyTorchとは、Facebookが開発したオープンソースの機械学習フレームワークで、マルチパラダイムスクリプト言語である「Lua」を対応言語としたTorchが基になっています。公開はTensorFlowよりも1年遅い2016年です。
現在では、「機械学習を使ったAI開発」「WebサービスやWebアプリの開発」「ブロックチェーン開発」、「IoTの開発」などさまざまな分野で活用されています。
PyTorchの主な特徴は次のとおりです。
- データの読み込みや前処理、計算・出力などの処理のすべてに前述したTensorを使用している
- 一般的にAI開発で使われるPythonのコアライブラリのほか、C++のコアライブラリやJavaScript向けのライブラリも提供されている
- 言語やデバイスを問わず、モバイルやIoT向けのTensorFlow LiteではAndroid以外にiOSでも利用できる
- 機械学習のフレームワークとしては利用者が多く、コミュニティでの情報共有が活発に行われている
- GPU操作が不要なため、効率的な開発が可能
PyTorchは、Facebookが開発元ということで、Kerasとは異なる点が多く存在します。近しいのは共に人気が高く利用者が多い点ぐらいでしょう。
異なる点は、たとえば、APIのレベルは、KerasはTensorFlow、CNTK、Theanoなどをバックエンドとして動作するため非常に高いのに対し、PyTorchは配列を直接操作する必要がある低レベルAPIです。また、可読性のおいてもKerasがシンプルかつ簡潔なのに比べ、複雑で理解しにくくなっています。
ただし、速度はPyTorchのほうが高速です。ほか、データセットもkerasが小規模データセットに使用されるのに対し、PyTorchが高速で実行ができることから大規模データセットで使用されます。
Pytorchについて下記記事で詳しく紹介しておりますので、ぜひご確認ください。
Kerasのライセンスについて
Kerasのライセンスは、バージョンによって異なります。2.4まではMITライセンス、2.6からは、Apache License2.0です。
なお、MITライセンスとは、オープンソースソフトウェアライセンスの一つで、マサチューセッツ工科大学を起源としています。Apache LicenseもMITライセンス同様、オープンソースソフトウェアライセンスの一つで、配布元は、Apacheソフトウェア財団です。
Kerasをインストールする手順
実際にKerasを利用する際にインストールを行う手順を紹介します。
バックエンドのインスト―ル
まず、Kerasをインストールする前に、Kerasのバックエンドとなる、「TensorFlow」「CNTK」「Theano」のいずれかをインストールします。もっとも相性が良いのは、同じGoogleが開発するTensorFlowです。
ただし、TensorFlowはインストールするマシンが高スペックでないと本来のパフォーマンスを最大限に発揮できない場合もあります。そのため、事前にインストールするマシンスペックの確認を忘れずに行ってください。
また、KerasをGPUで動作させたい場合は、「CuDNN」。Kerasのモデルをディスクに保存する場合は、「HDF5とh5py」。そして可視化でモデルのグラフ描画を行いたい場合は、「graphvizとpydot」のインストールが必要です。
PyPI(Python Package Index)からKerasをインストール
Kerasは、Pythonが言語となるため、PyPIでKerasのインストールを行います。なお、代替方法として、GitHubソースからインストールすることも可能です。
Kerasでディープラーニングを始めよう
Kerasとは、Googleが開発したニューラルネットワークのライブラリで、「読みやすく簡潔」「ユーザーフレンドリー」を重視して設計・開発がなされています。
Kerasを使ってできる主なものとしては、画像認識・音声認識・文章の生成・botシステムの作成などです。どれもディープラーニングでは欠かせないもののため、これらを使ったサービスを考えているのであれば、Kerasは必須のライブラリとして効果を発揮するでしょう。
また、Kerasは、機械学習のオープンソースライブラリとして高い人気を持つTensorFlowと相性がよいため、TensorFlowを使ったサービスを検討している方も習得をおすすめします。
今後、さらなる発展が期待されているディープラーニングを始めるのであれば、Kerasの習得は必須といえるでしょう。
AIについて詳しく知りたい方は以下の記事もご覧ください。
AI・人工知能とは?定義・歴史・種類・仕組みから事例まで徹底解説
業務の課題解決に繋がる最新DX・情報をお届けいたします。
メールマガジンの配信をご希望の方は、下記フォームよりご登録ください。登録無料です。
AI・人工知能記事カテゴリ一覧
AI・人工知能サービス
- 生成AI
- 画像生成AI
- ChatGPT
- AI研究開発
- LLM
- DX推進
- おすすめAI企業
- チャットボット
- ボイスボット
- 音声認識・翻訳・通訳
- 画像認識・画像解析
- 顔認証
- AI-OCR
- 外観検査
- 異常検知・予知保全
- 自然言語処理-NLP-
- 検索システム
- 感情認識・感情解析
- AIモデル作成
- 需要予測・ダイナミックプライシング
- AI人材育成・教育
- アノテーション
- AI学習データ作成
- エッジAI
- IoT
- JDLA
- G検定
- E資格
- PoC検証
- RPAツール
- Salesforce Einstein
- Watson(ワトソン)
- Web接客ツール
- サプライチェーン
- メタバース
- AR・VR・デジタルツイン
- MI
- スマートファクトリー
- データ活用・分析
- 機械学習
- ディープラーニング
- 強化学習
- テレワーク・リモートワーク
- マーケテイングオートメーション・MAツール
- マッチング
- レコメンド
- ロボット
- 予測
- 広告・クリエイティブ
- 営業支援・インサイドセールス
- 省人化
- 議事録自動作成
- 配送ルート最適化
- 非接触AI
業態業種別AI導入活用事例
今注目のカテゴリー
AI製品・ソリューションの掲載を
希望される企業様はこちら