Kerasを使って学べるレシピの紹介

# はじめに

Axrossを運営している松田です。

**[Axross](https://axross-recipe.com/recipes)**は、エンジニアの"教育"と"実務"のギャップに着目し、「学んだが活用できない人を減らしたい」という想いで、ソフトバンク社内起業制度にて立ち上げたサービスです。

現役エンジニアによる実践ノウハウが"レシピ"として教材化されており、Pythonプログラミングを活用して実業務に近いテーマで、動くものを作りながら学ぶことができます。

Axross：https://axross-recipe.com
公式Twitter：https://twitter.com/Axross_SBiv
![Axrossアイキャッチ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/9f500e0e-a759-20e2-bb8b-480bbcfaaf9b.png)

今回は、深層学習に適したPythonライブラリKerasの特徴を紹介し、Axrossのサービスで学べる**Kerasを活用した実践的なレシピ**を一部ご紹介します。

# Kerasとは
**Keras（ケラス）**とは、Pythonで書かれた深層学習のオープンソースライブラリの１つです。

Kerasは、Googleのエンジニアによって作り出されました。**読みやすく簡潔なアーキテクチャで迅速に実装できることと、ユーザーフレンドリーで拡張性があること**を重視して設計・開発されました。

Kerasを使うことで、ディープラーニングのベースとなっている**数学的理論の部分や、深層学習のアルゴリズム**を、比較的短く簡単なPythonコードで多くのモデルを素早く実装することができます。

Kerasは、構造がシンプルで使いやすく、ディープラーニングの初心者が実装を学び始めたり、ディープラーニングの迅速な実験をするのに最適なライブラリです。一方で、TensorFlowやPyTorchと比べると処理速度が遅く、学習に時間がかかります。そのため、小規模なデータセットにしか適さない点がデメリットです。

[Keras公式サイト](https://keras.io/)
![download.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/36af81db-d3ba-97e7-7429-72bf9c2c9708.png)

Googleのオープンソース深層学習フレームワークである**TensorFlow**の開発チームが、ディープラーニング分野で画像やテキストデータをより容易に扱うために、TensorFlowのコアライブラリにKerasをサポートすることを2017年に発表しました。最近ではKerasは、TensorFlowの機能と統合されていることから、Keras単体で独立して動作させるよりも、KerasのバックエンドとしてTensorFlowを用いることが主流となっています。

そして、TensorFlowとともに学術研究と企業の事業の両方で多く採用され、利用されています。

TensorFlowについてはこちらのQiita記事内容もご確認ください。

https://qiita.com/Axross_SBiv/items/e198547b389dfea2929e

# Kerasを活用したレシピの紹介
AxrossのKerasを使って学べる実践レシピを12個ご紹介します。
## 画像認識
### [画像認識による乗り物を分類するレシピ（モデル作成編）](https://axross-recipe.com/recipes/1)
投稿者：@[uehara7](https://axross-recipe.com/users/3) さん

外部APIを用いてWEBサービスから画像データを収集し、データの前処理、**VGG16**モデルの構築・評価まで、機械学習（AI）を活用して画像に映る物体を認識して画像分類する、一連のAI開発手法を学ぶことができます。

https://axross-recipe.com/recipes/1

また、続編の**[乗り物画像分類モデルの精度向上レシピ（転移学習編）](https://axross-recipe.com/recipes/2)**では、転移学習によって、画像分類モデルの精度を向上させる手法を学ぶことができます。

https://axross-recipe.com/recipes/2

### [YOLOv2とVGG16による料理認識レシピ](https://axross-recipe.com/recipes/101)
投稿者：@[belltree](https://axross-recipe.com/users/412) さん

深層学習モデル **YOLOv2**と**VGG16**による物体検出の学習方法を応用し、料理の画像データを用いて、料理メニューの推定を行います。

labelImgによるアノテーション作成、darkflowでYOLOv2の重みを利用、darkflowからの検出物体データの取り出し方、VGG16のFine TuningとOpenCV/PILの利用法、OpenCVで日本語テキストを表示する方法、交差検証といった、物体検出を行う機械学習モデルを構築するための一連の手法を学ぶことができます。

https://axross-recipe.com/recipes/101

### [TensorFlow(Keras)を使った洋服の種類分類を体験するレシピ](https://axross-recipe.com/recipes/117)
投稿者：@[st4trafalgar](https://axross-recipe.com/users/833) さん

Fashion MNISTの洋服の画像データセットを利用し、TensorFlow（Keras）を使った深層学習による画像分類を行います。

Kerasによるモデルの定義、学習、精度評価といった一連のディープラーニングの開発の流れを学ぶことができます。ECサイト等でのファッションコーディネート画像を自動分類するタスクで応用ができます。

https://axross-recipe.com/recipes/117

### [生産ラインを想定した画像異常検知の実践レシピ](https://axross-recipe.com/recipes/75)
投稿者：@[apple](https://axross-recipe.com/users/373) さん

**オートエンコーダ**、畳み込みオートエンコーダ、サーポートベクトルマシン（SVM）を構築し、一様なパターンを持つ画像の異常を検知し、異常部分をマーキングする手法について、画像データの前処理からモデル構築、評価まで機械学習の画像処理タスクの一連の流れを体験できます。

実務では、工場の生産ラインなどで画像をもとに正常の範囲を逸脱するもの（不良品や不純物等）の検出を自動化するときに活用されています。

https://axross-recipe.com/recipes/75

## 画像編集
### [Kerasで作る画像ノイズ除去モデル AR-CNNレシピ](https://axross-recipe.com/recipes/313)
投稿者：@[kz_onk](https://axross-recipe.com/users/4687)さん

高解像度の画像ノイズ除去分野において有名な**AR-CNN(Artifacts Reduction Convolutional Neural Network)**モデルについて、モデル構造の解説から、Kerasによるモデルの実装、ノイズ除去の画質比較テストの流れでハンズオン形式で学ぶことができます。

画像からノイズを除去する手法は、ぼやけた画像を拡大しつつ、欠落している情報を補完して鮮明な画質にする等、動画や画像の編集処理に応用することができます。

https://axross-recipe.com/recipes/313

### [顔交換（FaceSwap）技術を活用し、人物画像の顔を入れ替えるレシピ](https://axross-recipe.com/recipes/140)
投稿者：[@katkazzzzz](https://twitter.com/katkazzzzz)さん

**FaceSwap**を活用し、動画や画像から人物の顔の入れ替えを行い、機械学習で自然な合成を実現する手法を学びながら、画像処理における**オートエンコーダー**の仕組みとその効果を体験することができます。

AIを利用して人の顔を差し替える**ディープフェイク**と呼ばれる、フェイク動画の悪用やいたずらが近年問題視されていますが、その技術そのものは非常に優れた技術であり、使い方によっては私たちの社会に貢献できるものと思います。倫理規定に賛同した上でお試しください。

https://axross-recipe.com/recipes/140

## 物体検出
### [MediaPipeを利用して簡単なジェスチャーを推定するレシピ](https://axross-recipe.com/recipes/136)
投稿者：[@KzhtTkhs](https://twitter.com/KzhtTkhs)さん

**MediaPipe**を用いて手のランドマークを検出し、ランドマークを元に簡単なジェスチャー認識を行う方法をPythonを使って学べるレシピです。

非接触操作システムでの活用例を参考にして、人差指の指先の軌跡から「静止」「時計回り」「反時計回り」の3種類のジェスチャーを認識するプログラムを作ります。ジェスチャー学習用データの取得から、ジェスチャー分類モデルの定義、作成、動作確認までの一連の開発を行います。

https://axross-recipe.com/recipes/136

### [MoveNetのキーポイントからボディランゲージを読み取るレシピ](https://axross-recipe.com/recipes/326)
投稿者：[@高橋かずひと](https://axross-recipe.com/users/802)さん

TensorFlow Hub上で高速な姿勢推定モデル**MoveNet** を動かし、17個のキーポイントを取得し、**TensorFlow Similarityモデル**を用いてキーポイントからのボディランゲージの認識手法について学ぶことができます。

高速な姿勢推定の技術は、防犯カメラ画像の不審行動の検出などに応用できます。

https://axross-recipe.com/recipes/326

## セキュリティ
### [【AIセキュリティ入門】Adversarial Examplesを理解しAIモデルを頑健にするレシピ](https://axross-recipe.com/recipes/268)
投稿者：[@ChillStack](https://axross-recipe.com/users/4257)さん

ディープラーニングをはじめとする様々な機械学習を活用したAI発展に伴い、顔認証システムや防犯システム、自動運転技術など、様々な分野でAIの社会実装が進んでいます。一方で、AIに対する攻撃手法も数多く生まれており、「AIを防御する技術」の確立が急務となっています。

このレシピは、映像や音声などAIへの入力データに対して細工をすることによって、意図的にAIを誤認識させる攻撃手法とAIをより頑健にするセキュリティの仕組みを実践しながら学ぶことができます。

https://axross-recipe.com/recipes/268

## 時系列分析
### [POSデータから商品の売り上げを予測するレシピ](https://axross-recipe.com/recipes/329)
投稿者：[@su2umaru](https://axross-recipe.com/users/304)さん

時系列データ（POSデータ）を使用して、**Recurrent Neural Network (RNN)** をベースとした機械学習モデルによる商品の売上予測を行います。

人工的に整っていないリアルなデータを用いることで、現場で求めらえれる機械学習モデルの精度を上げるたために重要な、データの収集や前処理の手法を試しながら学ぶことができます。

https://axross-recipe.com/recipes/329

### [TensorFlow Kerasで時系列データの異常検知を行うレシピ](https://axross-recipe.com/recipes/273)
投稿者：[@高橋かずひと](https://axross-recipe.com/users/802)さん
**TensorFlow Keras**を用いて再構成畳み込み**オートエンコーダモデル**を構築し、心電図の時系列データに対する波形の異常検知を行う手法と、**Optuna**を用いたモデル構造探索について学べます。

実運用では、センサーから取得した時系列データを取得・分析し、その特徴を観察することで、モーターの故障を未然に防ぐための異常振動検知など、製造業を中心とした機械のメンテナス業務に応用可能です。

https://axross-recipe.com/recipes/273

# 最後に

AIを使いこなす人材になるためのコツは、
● 常に最新AI技術（モデルやライブラリ）やトレンド、ユースケースをキャッチアップすること
● 座学で学んだ後は、AIを使って何かアウトプットを出す疑似体験を繰り返すこと
● 様々なデータセットやAI技術を動かしてみてその手触り感を把握すること
だと思います。

ぜひAxrossのレシピを通して、プログラムの意味を考えながら写経（コードを実際に書き写す行為）し、実際に動くものをつくりながら学ぶことで、AIを活用できる人材が少しでも多く増やすことができたらと思います。
![Twitter広告2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620853/91167bb1-3813-e0cf-f1a7-9f198cbefca2.png)