12
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

データ収集からAI開発、Webアプリ公開まで全てPythonで済ませた話

Last updated at Posted at 2019-08-25

はじめに

こんにちは、はなたです。
今回は(一般的な?)機械学習プロジェクトの一連の流れである

データ収集→データ整形→機械学習(AI)モデル開発→モデル活用・公開

を全てPythonでやってみたよ、という記事です。プロジェクトと書きましたが、あくまで個人の趣味開発レベルです。

動機

大学院に入学してから機械学習について勉強し始めたのですが、実践する機会があまりありませんでした。kaggleは精度を競うゲームみたいな感じで個人的にはそこまで惹かれておらず、また自分で何か機械学習のモデルを作ろうと思っても「別に予測したいものなんてねえよ(笑)」という感じでした。

つい先日、Webスクレイピングの記事を書いたのですが、これを書き終えた後に今回のテーマを閃きました。今回のテーマは**「コード進行から曲のキーを判別するAIを作る」**です。自分の趣味である音楽の内容かつ、他に誰もやっていなさそうなアイデアだったので、寝食を忘れて開発に没頭しました。

完成したWebアプリがこちら

Djangoを使用して開発、herokuで公開しています。

https://kja-app.herokuapp.com/

gui_do.gif
動作の様子

image.png

現在は各キーの予測確率も表示させています。

コード譜掲載サイトで有名なU-fretに掲載されている曲のURLを入力すると、その曲のキーをAIが判断して表示してくれます。
※今のところU-fret以外のサイトは非対応です。今後、他のサイトやcsvインポートに対応するかも?

開発手順

以下の順序で開発しました。それぞれ詳細は記事にしましたので、興味のある部分を読んで頂ければ幸いです。

0.設計編(キーを判別するAIとは?)
今回の目的である「キーを判別するAI」をプログラムに落とし込む過程が書いてあります。「そもそもコード進行とかキーってなんぞや?」という方のために、その辺の音楽理論についても軽く触れています。

1.データ収集(クローリング)
今回作るAIは機械学習のモデルなので、訓練データが必要です。訓練データ収集について書いてあります。

2.データ整形(スクレイピング)
集めたデータを機械学習モデルに突っ込めるよう、データ整形を行います。コード進行の情報を上手く扱うために、クラス設計を行いました。

3.機械学習を用いたAIの開発←執筆中です
機械学習モデルとハイパーパラメータ選定について書いています。

4.Djangoを用いたWebアプリ開発
Django+Herokuでのデプロイについて書いてあります。

おわりに

データ収集からWebアプリ開発まで、最初から最後までやり遂げられて非常に満足しています。しかし、モデルの予測精度やWebアプリの見た目など改善すべきところはたくさんあるので、時間を見つけて修正していきたいと思います。ここ直した方が良いよ、というコメントをお待ちしております!!!

あと予測が全然合ってねえよ!って曲がありましたら、教えていただけると幸いでございます。

12
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?