AIアプリの作り方を初心者向けにゼロから解説してみた
【第2位】Aidemy:日本の大企業のDXで利用されている、高品質なPythonスクール。こちらもPython・AI・機械学習特化型
【第3位】TechAcademy:知名度抜群の総合型プログラミングスクール。Webアプリ開発からPythonプログラミングまで網羅
という質問がよくツイッター上できます。今回はそういった疑問にお答えできるように、 AIアプリの作り方を初心者向けに解説していきたいと思います。
https://twitter.com/never_be_a_pm/status/988774430263336961?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E988774430263336961%7Ctwgr%5E%7Ctwcon%5Es1_c10&ref_url=https%3A%2F%2Fdividable.net%2Fprogramming%2Fmachine-learning-dekirukoto
結論、簡単なすでに学習済みのAIアプリ程度であれば、WebAPIの知識とJavaScriptを理解していれば、作れるようになります!
ただ、初心者から独学で0から機械学習をさせて、画像認識やデータ予測、日常の業務の自動化アプリなどを作成しようとする場合、
- 何をどこまで、どの順番で学習したらいいかわからない
- エラーに1週間悩まされ続ける
- そもそも統計学や数学のバックグラウンドがなくて詰まる
以上のような状態に陥りやすく、結局挫折し、時間だけ無駄にしたというパターンが多いです。
ですので、周りに機械学習やプログラミングに詳しいエンジニアがいるのであれば、早めにメンターになってもらいましょう。
ロードマップに沿って学習することだけに集中できる環境で機械学習エンジニアやデータサイエンティストからフィードバックをもらいながら学習できるので、早く成果物を作れるようになります!
目次 (PRも含まれます)
どんなAIアプリを作れるようになるのか
実際に作った画像認識AIアプリの仕組み
①文字起こしアプリ(初心者向け)
LINEから画像を送信すると、文字起こしをした結果が返ってくる文字認識アプリです。
こちらのアプリの仕組みは以下のようになっています。
- Lineで文字を含む画像を送信
- Google App ScriptでVision APIに画像のデータを投げる
- Vision APIで画像からテキストを抽出
- 抽出したテキストをGoogle App Scrptを経由してLineに返す
実際のコードは、JavaScriptに似ているGoogle App Scriptで50行で実装しており、以下のようになっています。
function doPost(e) {
const LINE_ACCESS_TOKEN = ${ACCESS_TOKEN};
const lineJson = JSON.parse(e.postData.contents);
const replyToken = lineJson.events[0].replyToken;
const messageId = lineJson.events[0].message.id;
const lineImageUrl = "https://api.line.me/v2/bot/message/" + messageId + "/content/";
const lineImageResponse = UrlFetchApp.fetch(lineImageUrl, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
"Authorization": "Bearer " + LINE_ACCESS_TOKEN
},
'method': 'get'
})
.getContent();
const lineImageBlob = Utilities.base64Encode(lineImageResponse);
const API_KEY = ${API_KEY};
const visionRequestUrl = 'https://vision.googleapis.com/v1/images:annotate?key=' + API_KEY;
const payload = JSON.stringify({
"requests":[
{
"image": {
"content": lineImageBlob
},
"features": [
{
"type": "TEXT_DETECTION",
"maxResults": 1
}
]
}
]
});
const visionTextResponse = UrlFetchApp.fetch(visionRequestUrl, {
method: "POST",
contentType: "application/json",
payload: payload,
})
.getContentText();
const visionTextJson = JSON.parse(visionTextResponse);
const visionText = visionTextJson.responses[0].fullTextAnnotation.text;
const messages = [
{
"type":"text",
"text": visionText
}
]
UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", {
"headers": {
"Content-Type": "application/json; charset=UTF-8",
"Authorization": "Bearer " + LINE_ACCESS_TOKEN,
},
"method": "post",
"payload": JSON.stringify({
"replyToken": replyToken,
"messages": messages,
})
});
}
②顔認識アプリ(上級者向け)
LINEから女性の画像を送ると、それに似たAV女優の画像が返ってくるLINEアプリです。
https://twitter.com/never_be_a_pm/status/976360062758174720?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E976360062758174720%7Ctwgr%5E%7Ctwcon%5Es1_c10&ref_url=https%3A%2F%2Fdividable.net%2Fprogramming%2Fmachine-learning-dekirukoto
こちらのアプリの全体の仕組みとしては、以下の画像の通りです。
- 女性の画像URLをLineで送信
- Google App ScriptでURLを受け取り、機械学習済みのMicrosoft Azure Face APIへ送信
- 合致した女優名が返ってくるので、またDMM Web APIに情報を送信
- 取ってきた情報をLineで返す
AIアプリを作るために必要な知識
ゼロからAIアプリを開発するために、必要な知識は下記の通りです。
AIアプリを作るために必要な知識(上級者)
AIアプリを作るために必要になってくる知識は以下の通りです。
- データ収集
- データの前処理
- 機械学習
- アプリケーションとしてディプロイする
①データの収集を行う
これらの技術を身に着けることによって、データを収集することができます。
②データの前処理を行う
例えば、画像認識アプリでは、収集したデータの中に関係ないデータが含まれていたり、解像度が低くて学習に耐えないようなデータが存在することがあります。なので、データを事前に整形してあげたり、前処理してあげる必要があります。
③機械学習させる
データがそろったら、学習用のデータを機械学習を利用して学習させます。
④アプリケーションとしてディプロイする
これらの機械学習のモデルを利用し、実際に使えるようにするためには、Webアプリケーションとしてディプロイする必要があります。
現在キカガクでは、無料体験に申し込むだけでUdemyで最高評価の20時間分のPython&機械学習コースが利用できるので、少し興味あるな〜という方は、この機会に学習してみるのがおすすめです。
AIアプリを作るために必要な知識(初心者)
上級者編では、一からデータを取得し、AIでWebアプリを実装するまでの流れを書きました。
①Web APIを学ぶ
今まで、データの収集から前処理、機械学習までをゼロからやると書きましたが、学習済みの機械学習モデルをWeb APIを利用して、実装することができます。
②Google Apps Scriptを学ぶ
また、言語もPythonではなく、Google Apps Scriptを学ぶのがおすすめです。
独学でAIアプリは作れる?
ただ、本格的に自身で機械学習を勉強して、日常の業務を自動化するアプリを作ったり、オリジナルAIアプリを作って転職したいのであれば、かなり難しいと思います。
ハイレベルなAIを活用したアプリを作成しようとなると、それなりに求められるハードルも高くなってきます。
- アプリの見た目を作るフロントエンド、アプリの中身を作るサーバーサイドの知識・プログラミングスキル
- AI、機械学習の知識
- 機械学習に必要な統計学・数学の知識
パッと思いつくだけでも以上のことが求められます。
さらに、機械学習やデータ分析は他のプログラミング学習と違って専門性が求められるので、機械学習エンジニアからのフィードバックがなければ非常に難しいです。
「この学習の方向性が間違っているか?」気にせず、キカガクやAidemyなどのスクールへ通ってプロから正しい知識を学んだり、カリキュラムに則って学んだほうが早くオリジナルアプリが作れるようになります。
エンジニアとして就職・転職を目指している場合
後ほど詳しく解説しますが、もし、エンジニアとして就職や転職が目的の場合は、まずは、Web系エンジニアになった方が手に職がつきますし、年収もあげやすいです。
実際、Web系エンジニアから、機械学習やAIを勉強して機械学習エンジニアになったパターンが多いです。
その場合のおすすめのスクールも一応紹介しておきますね。
- ポテパンキャンプ:自社開発企業への転職成功例多数。卒業生エンジニアに「現場よりも難しい」と言わしめた、超実践型プログラミングスクール。
Pythonを学んで市場価値の高いAIアプリを作れるようになるスクール3選
ここからは、AIアプリ開発が学べるプログラミングスクールを3つ厳選してご紹介します。
- キカガク:あのマイクロソフトが導入するほどの高品質なPythonスクール。AI・機械学習・Python特化型。給付金で最大70%OFF。
- Aidemy:日本の大企業のDXで利用されている、高品質なPythonスクール。こちらもPython・AI・機械学習特化型
- TechAcademy:知名度抜群の総合型プログラミングスクール。Webアプリ開発からPythonプログラミングまで網羅
キカガク:最大70%の給付金をもらってAI人材を目指せるスクール
キカガク公式: キカガクは、給付金をもらってお得に学習しながらAI人材を目指すことができる、完全オンラインのプログラミングスクールです。 引用:キカガク公式 キカガクの講座は、Udemyでも高い評価を得ており、1つのコースで35,000人以上が受講している講座もあります。 実際、受講した方の生の声を見てみても、非常にポジティブなものばかりでした。(受講された方のレビューはこちらから) ※また、キカガクは一度スクールに申し込むと、全ての講座を無期限で受講することができるのでかなりお得です。 キカガクでは、無料体験を申し込むだけでUdemy上で高い評価を得たコースを実際に体験することができます。 受講できるコースは以下の2つで、合計20時間分の学習動画無料になります。 整理すると、キカガクは以下の方におすすめです。 ※キカガクの講座の無料体験は、3分ほどですぐに学習を始めることができます。
https://www.kikagaku.ai/コースの特徴
オンライン動画学習サービス、Udemyでも絶賛された高品質の学習コンテンツ
実際の講座を受講前に体験することができる
Aidemy:東証一部上場企業でもAI研修で使われているスクール
公式URL:https://aidemy.net/
Aidemyは、Aidemyという会社のマンツーマンプログラミング学習サービスです。
- 大学法人(早稲田大学)でも導入されている
- 東大の人工知能の権威、加藤教授がコンテンツを監修している
- Aidemy Premium Planの教材が、大手上場企業で、AIプロジェクトを回すために利用されている(infocom, dip, Minoriソリューションズ等)
といった、かなり実践的なAIエンジニア希望者向けのスクールです。
Aidemy Premium Planには、以下の5つのコースがあります。
- カスタマイズコース(全講座受け放題)
- データ分析コース
- AIアプリ開発コース
- 自然言語処理コース
- LINE Botコース
Aidemyの評判としては、受講者の方は以下のように語っていました。
スクレイピングが非常に役立ちました。教師データを作るにあたって、データがないと、データ抽出元がインターネットになってくるんですよね。
僕が入社するまで、教師データとして自然言語を取得する際に、人がインターネッとを見て、大人が一人当たり2日あたりかけていたんです。
そこで入社直後に上司に、「スクレイピングを使うと、自動でテキストを取得できます!」と伝え、実際に自分でコードを書いてスクレイピングを利用したら、2日かかっていた作業が、30分でできるようになりました。
直属の上司が喜んでくれましたね。実証としては精度が取れるかは、ちょっと現在確認中ではありますが、うまくいったら自動化される予定です。
実務で本格的にAIエンジニアとしてPythonを学びたいという方は、Aidemyがおすすめできます。
TechAcademy:とにかく価格を抑えて、オリジナルアプリ開発まで学習できるスクール
2023年4月時点, TechAcademy公式サイトより TechAcademyは完全オンラインのプログラミングスクールです。 専任のエンジニアがマンツーマンでメンターとしてサポートしてくれます。 TechAcademyでAIを学べるコースとしては があります。 AIコースは、Python x AIを専門に学びたい人におすすめです。 具体的には、 などを、Pythonのライブラリで実装していきます。 一方で、データサイエンスコースは、Python x 統計学を学びたい人におすすめです。 より本格的に などを行っていきます。 30秒ほどで無料体験に申し込むと、 という特典があるので、まずは公式サイトから無料体験を受講してみるのがおすすめです! ※更新情報 2022年2月2日時点、TechAcademyでは3つの特別割引プランがあります。
AIコースとデータサイエンスコースのポイント
AIコース
データサイエンスコース
学習内容
Python
機械学習
ディープラーニング
クラスタリングプログラミング
機械学習
数学・統計学
モデルの構築
価格/受講期間
174,900円 / 1カ月
229,900円 / 2カ月174,900円 / 1カ月
229,900円 / 2カ月
公式ページ
https://techacademy.jp/course/ai
https://techacademy.jp/course/datascience
無料体験はこちら
①『先割』受講料5%OFF:対象プランに先行申し込みで適応
②『トモ割』10,000円割引:同僚や友人が一緒に受講される場合に適応
(別々のコースになっても割引は適用されます)
③ 『複数コースセット割引』:複数コースをセットで申し込むと、別々に学ぶよりも最大138,000円もお得に。
よくある質問:未経験からAIアプリを作ってAIエンジニアになれる?
AIエンジニアはエンジニアの中でもかなり専門性が求められる職種なので、未経験からだと相当厳しいんですよね。
仮に未経験OK!と書いてあるAIエンジニアの求人があったとしても実際は「AIエンジニアっぽい」仕事な場合がほとんどです。
まずはサーバーサイドエンジニアとしてWeb系企業で実務経験を積んだ後、AIエンジニアになるために準備を進めていくというのがおすすめです。
- ポテパンキャンプ:自社開発企業への転職成功例多数。卒業生エンジニアに「現場よりも難しい」と言わしめた、超実践型プログラミングスクール。
今回紹介したAIアプリ開発が学習できるスクール