はじめに
Axrossを運営している藤原です。
Axross とは、エンジニアの"教育"と"実務"のギャップに着目し、「学んだが活用できない人を減らしたい」という想いのもと、ソフトバンクと社内起業制度にて立ち上げたサービスです。
現役エンジニアによる実践ノウハウを"レシピ"として教材化し、実際にプログラミングで実装を追体験しながら学ぶことができます。AI/機械学習をテーマにした、様々な業務領域やビジネスの課題解決に応用できる実践的な学習教材を160以上揃えています。(2021年8月時点)
Axross:https://axross-recipe.com
公式Twitter:https://twitter.com/Axross_SBiv
今回は、深層学習に適したPythonライブラリPyTorchの特徴を紹介し、Axrossのサービスで学べるPyTorchを活用した実践的なレシピを一部ご紹介します。
PyTorchとは
PyTorch(パイトーチ)は、Facebookの人工知能研究グループ AI Research lab (FAIR)が開発を主導し、2017年にGithubのオープンソースとして公開さた、Pythonで実装が可能な機械学習ライブラリです。
直感的にコードが書けて、シンプルで使いやすい点が特長です。モデルのカスタマイズしやすさ(柔軟性)や豊富な参照リソースが公開され、最新の機械学習手法が入手しやすいため、自然言語処理や画像処理をはじめとする最新の学術研究や論文で、PyTorchを活用するものが多く、開発者から人気があります。ほかにも、短期間のトレーニング、効率的なメモリ使用、動的な計算グラフ、デバックのしやすさもPyTorchフレームワークの特徴で、様々なディープラーニングのソフトウェアがPyTorchを利用して構築されています。
公式ページ: https://pytorch.org/
Githubリポジトリ:https://github.com/pytorch/pytorch
PyTorchを活用したレシピの紹介
DjangoとPyTorchを使って花を認識するWebアプリを作成するレシピ
投稿者:@satoshi さん
PyTorchを使用して花の種類を深層学習で画像認識し、 webアプリのフレームワークDjangoを用いて、花の画像ファイルを入力するとその画像に映る花の認識結果を表示する、簡易的な「花の種類検索アプリ」 を作成します。
この基礎技術は、花業界(市場/小売)での花の仕分け作業のデジタル化に応用できます。発展編として、**画像分類する深層学習モデルの判断部分を可視化するレシピ**で、深層学習モデルが花の画像内でどの部分を見て判断しているのか、Grad-CAMによって可視化することができます。
YOLOv5 と転移学習を使ってマスクの着用者と非着用者の顔検出を行うレシピ
投稿者:@lulu1351 さん
コンピュータービジョンの「物体検知」の王道とも言えるYOLO (You Look Only Once) シリーズの新モデルYOLOv5を活用し、近年需要が高い、マスクの着用者と未着用者の顔検出を行うタスクを実践します。
自分のデータセットでトレーニング(転移学習)を行い、Google Colabratoryを使って、YOLOv5を動かし、TensorBoardツールを使って学習結果の可視化することができるようになります。
航空写真からアノテーションデータを作成して、対象物を抽出するセマンティックセグメンテーションモデルを作成するレシピ
投稿者:@regonn_haizine さん
Tellusの衛星データを用いて、航空画像等のリモートセンシングデータに対象物がどこに写っているのかを判別するモデル作成の一連の流れを体験できます。ゴルフ場コースのセマンテックセグメンテーションタスクを例に、画像データの取得から始め、アノテーションデータを追加してデータセットを作成し、その自作データセットを用いて予測モデルを作成します。
実務活用例としては、衛星画像・航空写真・ドローン空撮画像から、機械学習で対象物を検出するセグメンテーションモデルを作成できるようになります。
BERTによる日本語QAの発話応答モデル作成レシピ
投稿者:@katkazzzzzさん
Google検索エンジンに使われている自然言語処理モデルBERTを使って、A4紙1枚程度の日本語マニュアルの中から、日本語での質問に対する日本語の回答を探し出すモデルを作成します。BERTをfinetuningし、QAタスクに適用するPyTorchによる自然言語処理手法を学ぶことができます。
また、続編である**【発展編】BERTによるQAチャットボットの学習モデル作成レシピでは、BERTと自然言語処理に特化した深層学習のフレームワークTransformersを活用し、日本語QAチャットボット**の学習モデルを作成します。
@katkazzzzzさんのPyTorch活用関連レシピとして、**PyTorchを活用し画像のキャプションを自動生成するレシピと、【発展編】深層学習を活用し、より高精度な画像のキャプションを自動生成するレシピ**も併せてご確認ください。
Pytorchを使ってGANによる異常検知を行うレシピ
投稿者:@WIRegさん
GANを画像の異常検知の領域に応用した「AnoGAN」と「EGBAD」の手法を実装していきます。GANの仕組みについて丁寧に解説されており、GANの理解を深め、GANの異常検知における実務活用例を学ぶことができます。
GANによる画像の異常検知は、工場での外観検査、農作物の品質検査、医療画像からの疾患検査、などが挙げられ、活用分野は非常に広いです。
【PyTorch】精度爆上げのオレオレベストプラクティスを10個まとめてみた!
投稿者:@omiita_atiimoさん
画像分類タスクでさらなるモデル精度向上を実現するためのベストプラクティス10個をまとめています。データセットはCIFAR-10を用いており、実際に手を動かしながら学べます。
バッチノームやL2正則化、ドロップアウトなど、もはや当たり前となっているものではなく、「データ水増し手法」、「アーキテクチャ」、「ラベル」、「オプティマイザー」、「学習率」などの点から、実際の経験に基づいて面白いと思ったものをそれぞれ実装し、使い方を解説しています。
@omiita_atiimoさんのPyTorchを活用した画像認識モデルとして、**PyTorchによる画像認識最強モデル「EfficientNet」実装レシピ**も併せてご活用ください。
最後に
今回は、AxrossのPyTorchを使って学べる実践レシピ をご紹介しました。
AIを活用できる人材になるためのコツは、座学勉強よりも、まず実際にAIを実装する体験をしてみる、そして、様々なテーマやデータセットで、異なるAIモデルの実装を繰り返し演習することが近道だと思います。
Axrossのレシピを通して、プログラムの意味を考えながら写経(コードを実際に書き写す行為)し、実際に動くものをつくりながら学ぶことで、新たな知識の習得やスキルアップの一助になれれば幸いです。
また、Axrossでは自身のナレッジを学習教材"レシピ"として寄稿いただけるエンジニアの方も募集しています!
見習いエンジニアから募った学びたい内容を**ウィッシュリスト**として掲載しています。募集中のテーマからご自身で作成いただけるようでしたら、レシピ作成にご協力お願いいたします。