独学でAIを習得する!初心者でも挫折しないオススメのAI勉強法!

独学でAIを習得する!初心者でも挫折しないオススメのAI勉強法!

この記事はこんな方にオススメです
  • AI を勉強したいがどこから始めればいいのかわからない。。
  • 文系、プログラミング未経験でも AI を習得できるか不安。。
  • 効率よく勉強するためのオススメのサイトや参考書が知りたい

昨今 AI 人材不足という話題がニュースで見かけることが増え、AI に興味を持ち勉強したいと考えている方は非常に多いです。しかし、勉強したい気持ちあるものの、具体的に何を、どのように、どの順番で学べばいいのか?といった疑問を抱えてる方はたくさんいらっしゃると思います。また、数学がわからない文系出身の方やプログラミング未経験の全くの初心者の方は、そもそも勉強して知識・スキルがちゃんと身につくのかといった不安がある方も多いかと思います

この記事では、25,000 人以上の受講生を教えてきたキカガクが、初心者の方がこれから AI を勉強していくために知っておくべきオススメの勉強法をお伝えします。

AI 独学のための 5 つのステップ
  • Step1 : AI でしたいことを決める
  • Step2 : 学習を進めるための全体像を理解する
  • Step3 : 最低限の数学を理解する
  • Step4 : Python の基礎を学ぶ
  • Step5 : 機械学習・ディープラーニングの基礎について学ぶ

※本記事での人工知能 (AI) は機械学習に含まれる技術を意味します。

Step1 : AI でしたいことを決める

要約
  • AI を使って「これがしたい!」という目的意識がなければ、勉強を続けることは難しい
  • そのためには、AI で何ができるのか、どういったことに活かせるのかのイメージを掴むことが重要

まず、初めのステップでは AI を学び始めることの目的を明確にします。ここは大変重要です。知識の吸収スピードも、継続できるのかもこの目的意識によって大きく左右されます。

勉強に取り組もうとしている方は今一度ご自身に「なぜ AI を学びたいのか?」、「AI を使ってどのようなことがしたいのか?」と尋ねてみて下さい。これに加え、「いつまで」といった期間のゴールも定めれると全く見える景色も変わってくると思います。

もし、AI でどのようなことができるのか?といった疑問がある方はこちらのキカガクが提供する AI 無料学習サイト「KIKAGAKU」から、AI で何ができるのかを学び、もう一度考えてみて下さい。

この考えは今後勉強を進めるためのコンパスになるので、大切にし、いつも意識するように心がけましょう。

Step2 : 学習を進めるための全体像を理解する

要約
  • AI スキルを身に付けるためにはどのような知識が必要なのかの大枠を理解し、自分のゴールへの最短距離を理解することが成功のポイント!

Step1 では、学んだ先の「なりたい自分」を想像してもらいました。次に、そのなりたい自分に近づくために必要な知識・スキルの全体像を理解する必要があります。旅に例えるなら Step1 はコンパス、Step2 は地図を持つようなイメージを持つとわかりやすいかと思います。

初心者にとって大敵なのが、何を、どの順番で、どのように勉強するのかがわからない点です。まず何を学ぶ必要があるのかを明確にし、学習をスタートさせましょう。

学習のステップ

※上図はあくまでキカガクが考える一例になります。

何を学ぶかは大きく 2 つのパートに分けることができます。

基礎パート

AI スキルを身に付けるために土台となる基礎で、全ての人が学ぶべきパートです。

  • 機械学習に必要な数学の知識
  • Python のプログラミングスキル
  • 機械学習に関する基礎的な知識、プログラミングスキル

特化パート

基礎パートで身につけたスキルを元に、それぞれのゴールに合わせたスキルを学ぶパートです。
機械学習で取り扱うデータは、主に次の 4 種類のデータがあります。もちろん全てを学ぶことが望ましいですが、取り扱うデータに合わせて学ぶ内容を選択すると効率よく勉強を進めることができます。

  • 画像データ
  • 文章データ
  • 時系列データ(1/1 の来店者数は 100 人のデータに前後関係が存在するデータ)
  • 表データ(Excel のシートに記載されるようなデータ)

全体像が理解できたところで勉強を進める全体像が理解できました。具体的な勉強方法について紹介していきます!

Step3 : 最低限の数学を理解する

要約
  • 機械学習を理解するためには、最低限の数学の理解は必要
  • 初めから全てを理解しようとする必要はない + 避けた方がいい!

※以降は文系・プログラミング未経験の方を対象とした勉強方法になります。

重要なポイントは最低限」です。文系の方にとって数式は呪文です。英語を読むことより馴染みがなく、拒否反応を示す方は多くいると思います。しかし、最低限の数学の理解は確実に後ほど学習を進める上で活きてきます

多少苦しくても踏ん張りましょう!数学を理解することはプログラミングにも活かされてくるので、確実に抑えておきましょう。

最低限の数学
  • 微分(偏微分まで)
  • 線形代数
  • 基礎統計(平均、分散、標準偏差など)
  • 単回帰分析の数学
  • 重回帰分析の数学

この数学が理解できるとなぜ AI はどのように学習・予測を行うのかの理解が一気に高まります。

重回帰分析の数学は数学は全て理解する必要はありません。ですが、どのような計算が行われているのか理解するために、一度は必ず数式を追ってください。そして、「大体こういうことをしているんだ」ぐらいのことが言えれば次のステップへ進みましょう!

Step4 : Python の基礎を学ぶ

要約
  • 実際に手を動かして、プログラミングを行うことが重要
  • 間違ってもいいので、とにかく気になったことは試してみる!

未経験からプログラミングを始める方の障害となるのは環境構築です。まず初めは Google Colaboratory という Google が提供する無料の環境を使用して学習を初めましょう!

未経験の方にとってプログラミングは未知の領域です。しかし、数学の知識があればプログラミングで何をするのかイメージができているかと思います。あとは、手を動かしながら理解していくだけです。プログラミングにおいて失敗、試行錯誤の経験は非常に重要です。このポイントをしっかり抑えておきましょう。

Python の基礎
  • データ構造(整数・実数値、文字列)
  • 算術演算子、比較演算子
  • リスト、タプル、辞書
  • 関数
  • クラス

プログラミングを学ぶ上で重要なポイントは必ず手を動かし、実際にコードを書きながら学ぶことです。もし、学んでいる最中に気になることがあればまず、実際に書いてみましょう。そうすれば、「これがだめで、これができる。ということはこれはこういう意味か!」となります。

また、NumPy 、Pandas 、Matplotlib などの Python のパッケージの使用方法の基礎についても理解しておきましょう。

Step5 : 機械学習・ディープラーニングの基礎について学ぶ

要約
  • scikit-learn を用いて、様々な機械学習アルゴリズムの実装を行うことができることを目指し、それぞれのアルゴリズムの数学は後回しにする!
  • ニューラルネットワークの数学を理解し、TensorFlow もしくは PyTorch を用いて実装ができることを目指す

ここまでで、最低限機械学習がどのようなものなのか、そしてどのようにプログラミングを通して実装するのかが理解できていると思います。機械学習の様々なアルゴリズムを sciki-learn で実装することを目指しますが、全てのアルゴリズムの数学を理解することはおすすめしません。

特に文系の方は他のアルゴリズムの数学に手を出すと、挫折に繋がるので、それぞれのアルゴリズムがどのような特徴を持ち、使う場面はいつなのかといった部分の理解に注力しましょう。また、実装は必ず何度も行いましょう。

機械学習の基礎
  • 教師あり学習の代表的なアルゴリズム
    • 重回帰分析
    • リッジ回帰
    • ラッソ回帰
    • ロジスティク回帰
    • k 近傍法
    • サポートベクトルマシン
    • 決定木
    • ランダムフォレスト
  • 教師なし学習の代表的なアルゴリズム
    • k 平均法
    • 主成分分析
  • ハイパーパラメータの代表的な調整方法
    • グリッドサーチ
    • ランダムサーチ
    • ベイズ最適化
  • 分類の代表的な評価指標
    • 正解率
    • 適合率
    • 再現率
    • F 値

ディープラーニングの基礎についてはニューラルネットワークの数学の理解と、TensorFlow や PyTorch などのフレームワークを用いて実装できるレベルを目指しましょう。

ニューラルネットワークの数学は今後発展的な内容を学ぶ上で、重要となってきます。ニューラルネットワークの順伝播と逆伝播の計算は必ず理解しておきましょう。

ディープラーニングの基礎
  • ニューラルネットワークの計算(順伝播)
    • 線形変換
    • 非線形変換
  • ニューラルネットワークの計算(逆伝播)
    • 誤差逆伝播法
    • 勾配降下法
    • ミニバッチ学習
  • ニューラルネットワークの実装(TensorFlow もしくは PyTorch)

ここでも掘り下げ過ぎは禁物です。ニューラルネットワークがどのようにパラメータを更新していくのかのイメージが掴むことをまず意識しましょう。

ここでこのイメージが具体的に湧いていれば、この先学んでいく様々なモデルを理解の助けとなります。

次のステップ

ここまでくればあなたは AI の基礎的なスキルが身についているでしょう。
次のステップは最初に定めた、自身の問題設定に向かって学習を進めて下さい。画像データを取り扱うようでしたら、畳み込みニューラルネットワーク (CNN) 、自然言語処理ではテキストデータの特徴抽出方法(数値に変換すること)などを学ぶ必要が出てきます。

次は簡単にそれぞれ何を学ぶべきなのかについてまとめたものになります。是非参考にしてみて下さい。

次のステップ
  • 画像データ
    • 畳み込みニューラルネットワーク (CNN)
    • 物体検出のアルゴリズム (R-CNN 、YOLO 、SSD など)
    • セマンティックセグメンテーションのアルゴリズム
  • 文章データ
    • 文章データの特徴抽出方法(Bag of words 、Word2Vec など)
    • 機械翻訳のアルゴリズム (Seq2Seq 、Attention など)
  • 時系列データ(1/1 の来店者数は 100 人のデータに前後関係が存在するデータ)
    • 再帰型ニューラルネットワーク (RNN 、LSTM 、GRU など)
    • 畳み込みニューラルネットワーク (CNN)
  • 表データ(Excel のシートに記載されるようなデータ)
    • 特徴量エンジニアリング
    • 発展的な機械学習アルゴリズム (XGBoost 、LightGBM など)

※上記はあくまで例となります。基礎のステップを終えた後に学ぶ、比較的難易度の低い内容を選定しています。

ディープラーニングの発展的なアルゴリズムを学ぶ際は理論を抑えることも重要ですが、その理論が経験的に証明されているのか、されていないのかを理解することが重要だということも覚えておいて下さい。

アルゴリズムの中には明確な答えは無く、経験的にこういうものだと割り切る必要があるものが存在するためです。

ここまでこればあなたは自分で学びたいことを調べ、より特化した内容を理解することができるでしょう。また、一度データサイエンスのコンペティションで有名な kaggle に挑戦し、自分の理解度を測る / 理解の深堀りすることをオススメします。

今回は何をどう学ぶのかを具体的に紹介しました。ぜひ、皆さんの学習の道筋として活用して下さい!
また、無料学習サイト KIKAGAKU も皆さんの学習教材としてぜひご活用下さい。