プログラミング初心者が画像認識まで実践。AIオンライン学習サービス「Aidemy」で学ぶ

このエントリーをはてなブックマークに追加

業務効率化やAIを自社サービスで取り入れるため、自主的にAIを学んでいる方や、AIの社内勉強会を開催している企業も多いのではないでしょうか。

しかし、AIの学習に取り組む、すでに取り組んでいる初学者の方は困難も多いはず。

そこで今回は、AIプログラミング学習サービス「Aidemy」で、プログラミング初心者である筆者が実際に学習し、レポートしていきたいと思います。

無料で始められるAIプログラミング学習サービス「Aidemy」

Aidemyは、無料で始めることができるAIプログラミング学習サービスです。

特徴としては以下のとおり。

  • 10秒で演習開始
    PCへの環境構築は不要で、インターネットブラウザ上でプログラミング可能

  • 注目の技術を習得可能
    ディープラーニングや自然言語処理などの技術を習得可能。具体的には、Python/numpy/pandas/scikit-learn/Tensorflowなどの学習コンテンツを網羅

  • 無料で始められる
    一部の講座は完全無料

  • 理論より実践重視
    難しい数学の知識や理論もできるだけ直感的に理解できるようなカリキュラム

  • 自動採点システム
    書いたプログラムは仮想環境上で自動採点

プログラミングを始めようとすると、誰もがはじめに環境構築の段階で手こずるのではないでしょうか。Aidemyは環境構築をする必要がなく、ブラウザのみでプログラミング学習ができます。

充実のコース内容。今回は画像認識にチャレンジ

Aidemyには37つのAI関連のコースがあります。(2019年1月11日現在)

どのコースから手をつければいいかわからない場合でも、マスターしたい分野に応じてコースがあらかじめ選定されている受講ルートが3つあります。

  • ディープラーニングで画像認識モデルを作ってみよう!
  • 自然言語処理でニュース記事をカテゴリ分けしてみよう!
  • 数値予測アルゴリズムで未来の売上を予測してみよう!

今回は、「ディープラーニングで画像認識モデルを作ってみよう!」というルートに沿って受講しました。コース内容はこちらです。

  • Python入門
    Chapter 1.Pythonの基礎
    Chapter 2. Pythonの基本文法
    Chapter 3. 関数の基礎

  • ライブラリ「NumPy」基礎
    Chapter 1. NumPyの概観

  • ライブラリ「Matplotlib」基礎
    Chapter 1. データ可視化のための準備
    Chapter 2. matplotlibの使い方
    Chapter 3. 様々なグラフを作る

  • データクレンジング
    Chapter 1. lambdaやmapなどの便利なPython記法
    Chapter 2. DataFrameを用いたデータクレンジング
    Chapter 3. OpenCVの利用と画像データの前処理

  • 機械学習概論
    Chapter 1. 機械学習概論
    Chapter 2. 機械学習の流れ
    Chapter 3. 性能評価指標

  • 教師あり学習(分類)
    Chapter 1. 教師あり学習(分類)の基礎
    Chapter 2. ハイパーパラメーターとチューニング(1)
    Chapter 3. ハイパーパラメーターとチューニング(2)

  • ディープラーニング基礎
    Chapter 1.深層学習の実践
    Chapter 2.深層学習のチューニング

  • CNNを用いた画像認識
    Chapter 1. CNNを用いた画像認識の基礎
    Chapter 2. CNNを用いた画像認識の応用

今回は、その中でも画像認識を学ぶのに必要最低限と思われる以下のコースを選定し、受講しました。

 1.Python入門
 4.データクレンジング
Chapter 3. OpenCVの利用と画像データの前処理
 5.機械学習概論
 6.教師あり学習(分類)
Chapter 1. 教師あり学習(分類)の基礎
 7.ディープラーニング基礎
 8.CNNを用いた画像認識

解説、課題、実践の順で進む。間違いも細かく訂正

まずは以下の3つにチャレンジ。ちなみにAidemyではコースの難易度が4段階に設定されており、順番に学んでいけます。

  • Python入門
  • データクレンジング
  • 機械学習概論

Python入門

まずは機械学習において使われるプログラミング言語「Python」の入門編に取り掛かりました。

「Hello World」と出力できればゴールですが、すでにプログラムは書いてあります。

左に書いてある解説を読み、右のプログラムの例と合わせて確認することができます。まずは実行すると、とりあえずプログラムを動かすことができる学習コンテンツになっています。

プログラムを確認し、実行ボタン「RUN」をクリック。

すると右下コンソール部分に結果が出力され、ミッションコンプリートとなります。シンプルでサクサク進められます。

間違えた場合でも細かく指摘が入るので、正しいプログラムの書き方を学べます。ヒントや答えを見ることもできるため、一つの課題に何時間も詰まってしまうことはなさそうです。

また、コース修了の際には、コース全体の要点がまとめられた動画を見ることができ、そのコースのポイントや注意点がシンプルに解説されています。

データクレンジング

続いてデータクレンジングのコースに移ります。

データクレンジングとは、機械学習モデルにデータを読み込ませるために、データの欠損値や画像の前処置をするための手法です。

データクレンジングでは、OpenCVというライブラリを使って画像を扱います。まずは、OpenCVの基本的な操作である、以下の講座を順番に進めていきます。

  • RGBデータ
  • 画像データのフォーマット
  • 透過データ
  • 画像の読み込み
  • 画像の作成(真っ赤な画像など)
  • トリミングとリサイズ
  • 回転・反転
  • 色調変換・色反転

ここでは例として、RGBデータの講座を見てみます。講座を開くと、以下のような解説から始まります。

新しい概念を学ぶ際、まずはしっかり解説があり、その後に課題として選択問題が与えられるのは、知識の定着という意味でいいかもしれません。

また、前回の内容を忘れていたとしても戻って確認することができるので、適宜復習しながら進められます

機械学習概論

Pythonとデータクレンジングを学んだ後は、いよいよ機械学習概論です。

ここから複雑な計算が絡んできます。例として、混同行列の講座を紹介します。

まずは上のように混同行列についての解説があります。

その後、実際に混同行列の作成に移ります。与えられたデータを、ヒントを見ながら分類していきます。

右下のコンソールの部分に出力結果が出ます。混同行列を作ることに成功しました。

プログラミングを勉強する際は、分からない部分を調べながら進めていくイメージがありますが、Aidemyではヒント、答え、解説までついているのでその必要はありません。

サクサク進められるので、モチベーションを維持しやすく感じます。

さらにレベルアップ。難しくなっても読み返せる安心感

続いては、難易度が高めの以下の3つにチャレンジしました。

  • 教師あり学習(分類)
  • ディープラーニング基礎
  • CNNを用いた画像認識

教師あり学習(分類)

まずは教師あり学習(分類)から。この章では、

  • データの前処理
  • データの整形、操作、生成
  • モデルの学習
  • チューニングをおこなうハイパーパラメーターの選択
  • モデルによる予測
  • 未知のデータを使ってモデルの精度検証

という流れで予測モデルを作っていきます。

上の予測モデルのプログラムはかなり複雑に見えますが、実際は

# train_Xとtrain_yを使ってモデルに学習させる
model.fit(train_X, train_y)

# test_Xに対するモデルの分類予測結果
pred_y = model.predict(test_X)

の2箇所を埋めるだけ。手軽にAIを「作る」作業がここで体験できます。

ディープラーニング基礎

いよいよ機械学習からディープラーニングへと移っていきます。

まずはディープラーニングを使った予測を体験するため、既にプログラムが埋まっている画面が以下のように表示されます。

実行すると30秒ほど経過し、出てきたのが下の画面。エポック数が上がるにつれ、テストデータに対する正解率が上がっていることがわかるグラフが出力されました。

エポック数
エポック数とは、ひとつの訓練データを学習させる回数のこと。

初学者は、実行後の結果だけを見ても何を示しているか分かりづらいと思いますが、グラフを表示させることで学習の推移がひと目でわかるようになっています。

その後、作った分類を行い、精度を検証。エポック数(試行回数)が増えれば精度が上がるイメージがしやすく、すんなり理解できました。

CNNを用いた画像認識

最終章では、CNN(Convolutional Neural Network)を使って画像認識を行います。

CNN(Convolutional Neural Network)
畳み込みニューラルネットワーク。画像認識によく使われる、ディープラーニングの一手法。

下のように、そもそも画像認識とは何か? の解説から始まります。画像を使って解説されるため、画像認識においてどのように物が検出されるのかのイメージが掴みやすいです。

そして画像認識で使われるCNN(畳み込みニューラルネットワーク)についての理論の部分で解説があり、最終的には画像認識の際の正規化、学習データのカサ増しといった方法も学んでいきます。

画像認識の章では、データの生成から学習までの手順を踏む必要があるため、プログラム自体の難易度がかなり上がった気がします。しかし、手順がそれ以前の講座ですでに解説されているため、進めなくなるということはありませんでした。

コースを修了すればいつでも画像認識を実装できるようになるとは言えませんが、仕組みは覚えられるため、ネットで検索しながらプログラムを自分で組み立てて行くことはできそうです。

とにかく丁寧でモチベーションも維持しやすい

Aidemyで学習してみた感想としては、想像以上に細かく、丁寧な解説が常に添えられていたということ。「こんなことまで教えてくれるのか」という部分まで記載されているため、しっかり読み進めていけば必ず理解できるでしょう。

また、プログラムもすべて書く必要があるわけではなく、重要な一部が空欄で問題として出題されるため、知識を定着させつつ実践も同時に進められます。

そのスピード感で次々と画像認識をこなしていくと、モチベーションも上がり、コース修了後も、自分で詳しく調べてみようという気持ちになりました。

Aidemyでは、下記のコースを無料で試すことができるほか、すべてのコースが最初の3つの講座まで無料です。ぜひ試してみてください。

  • Python入門
  • 機械学習概論
  • ディープラーニング基礎
  • ブロックチェーン基礎

2018年7月にはAidemy Businessの提供が開始され、製造業やSIerなど中心に会社単位で導入も進んでいるようです。全社的に取り組む企業は、こちらも検討してみてはどうでしょうか。

Aidemy:https://aidemy.net
短期集中Aidemy Premium Plan:https://aidemy-premium.net/