はじめに
私はAIについて知識がほぼありませんが、AIに関する知識を身に着けて今後のIT業界で生き残っていく力を身に着けたいと思っています。AIを学ぶ上で「はじめてのパターン認識」をおすすめされて半分ほど読み進めましたが、これを学んで実際何に役立つのかが現状では理解できずに学習が止まってしまっています(挫折中)。そこで、年末年始に心機一転、スモールステップ法を意識して学習方法を模索しプランを立てたいと思います。
対象読者
・AIに興味はあるが、学習ハードルが高くて進めていない方
・AIを学ぼうとしている初心者の考えを知りたい方。
スモールステップ法とは?
スモールステップ法とは、心理学者スキナーが提唱した「プログラム学習」の5つの原則のうちの一つです。いきなり大きな目標を掲げると、難易度が高く挫折してしまう...といった課題を解決するために、目標を細分化して段階的に学習していく方法です。
一度に大きなステップを乗り越えるのではなく、小さなステップを次々に乗り越えていくことで学習に対する心理的ハードルを下げられるということですね。
考案したステップ(前半)
ひとまず、「AIの知識を身に着け、実践的な領域に到達すると共に、社内のAI案件に関われるようになる」という大きな目標を達成するために、その目標を小さなステップに分けていきたいと思います。
前半ステップでは、主に知ることに集中しています。
ステップ1:AIエンジニアとはどういったものか知る
現在のAIのエンジニアにはどのような種類・仕事があるのか詳しく知らないため、まずはそこから知っていこうと思います。
ステップ2:私の会社で、どのようなことをしているのかを知る
そもそも私の会社で何をしているか、なんとなくしか知らないため、前ステップで学んだAIエンジニアにも当てはめて知っていこうと思います。
ステップ3:私の会社でAIエンジニアになるとして、必要な基礎知識を調べる
AIエンジニアになるためには、数学や機械学習の知識が必要だろうなとなんとなく思っていますが、詳しくは知りません。そこを明確にして、知識を身に着けるべき理由を理解したいと思います。
ステップ1~3の結果
ステップ1~3を行った結果を極簡単に記します。
[ステップ1]
まずAIエンジニアとは、機械学習やディープラーニングなどの技術を用いて課題解決手順を考え、様々な業務システムにAIの技術を応用する人で、AIエンジニアの仕事としては、「開発」「学習」「分析」の3つに大別されるようです。また、AIエンジニアの職種としても5つに分けられるようでした(省略)。
[ステップ2]
私の会社では上記3種をすべて行っているようで、全てに関わるには幅広く学ぶ必要がありそうです。ただ、現状ではあまりやっていることを理解できず、結局はまず基礎知識を固めていかないと厳しそうだなという結論に至りました。
[ステップ3]
必要な知識は主に4つありそうでした。
・機械学習の際などに使用する「数学(確率・統計・微分積分・線形代数 等)の知識」。
・データ加工等で使用する「プログラミング知識」
・機械学習やディープラーニングの知識
・データベースの知識
考案したステップ(後半)
前半では、AIに関する理解を深め、必要な知識を調べました。
私の場合、やはりまずは基礎知識を学ぼうという結論に落ち着いたため、後半ではその必要な知識を学ぶステップを考案したいと思います。
以降のステップに関しては、各ステップで更に細かいステップを作成して取り組むことで学習達成を目指したいと思います(長くなってしまうため、今回はそこまでは記載しません)。
ステップ4:数学や統計学の知識を学ぶ
[主要な基礎知識]
・確率
・統計
・微分積分
・線形代数
機械学習等を学んだり使用する際に必要となるため、高校レベルの数学の知識はまずある程度は学び直して思い出しておこうと思いました。機械学習を学びながらでもいいのでは?という問いに対しては、分からない部分が多すぎるのに分からない度に調べていくのは大変だと「はじめてのパターン認識」で機械学習をなんとなく学んでいた際に思ったからです。
ステップ5:機械学習・アルゴリズムの知識を学ぶ
[主要な基礎知識]
・機械学習に関して
最低限数学を学んだら、それを活かして機械学習に関して学んでいこうと思います。これは紹介していただいた「はじめてのパターン認識」が網羅しているため、今度こそは学びきろうと思います。自分なりに学んだ手順をまとめていくことで、アウトプットしつつ学んでいけたらなと考えています。
ステップ6:プログラミング知識(Python)を学ぶ
[主要な基礎知識]
・Pythonの文法等、基礎部分
・機械学習に使用されるPythonライブラリについて
AIのプログラミングにおいて、Pythonはもっとも一般的な言語のようです。ここは基本的なことを学びつつ、実際のAIのコードを見たり書いたりして学んでいけたらなと考えています。
ステップ7:データベースの知識を学ぶ
[主要な基礎知識]
・SQLやNoSQLについて
こちらは、データを効率的に扱う上で必要なようですが、ステップ6までの知識を身に着けたうえで、なぜ必要なのか?というところから詳しく学んでいきたいと思います。
ステップ8:実践(的な学習)
以降のステップは保留として、まずはステップ7までの基礎知識を身に着けて実践領域に踏み入れるようにしたいと考えています。
あとがき
今後は後半ステップを進めつつ、箸休めにAIに関する情報を適宜調べていきたいなと思っています。AIについて理解を深めた結果、状況が変わったら適宜ステップを更新していきます。学習が終わった際には、結果としてどうだったかも追記できたらと思います。
(ステップは状況により適宜更新していくのが望ましいです。)