「AIの学び方」 AIを学ぶ方法
「AIの学び方」
初心者の一般的な誤解は、最新のアルゴリズムを実装したいくつかのチュートリアルからAI/MLを学べると思っていることです。そのため、AIの学習に関するいくつかのノートとアドバイスを共有したいと考えました。また、AI/MLの記事やリンクがたくさんあるGitHubレポもあります。LearnAI
背景
25年以上のソフトウェアエンジニアリングの経験を持つプロのAIエンジニアとして、さまざまなソフトウェアアプリケーションとテクノロジーの設計と実装を行ってきました。したがって、私は数百から数千のソフトウェアライブラリ、フレームワーク、APIを使用および実装してきました。また、私は数学の修士号と人工知能のMSCSを持っているため、数学およびコンピュータサイエンスの学部生および多くの修士課程のメンターとして、指導および教育に十分に適任です。
AIの学生は、AIの歴史を学ぶことが重要です。AIの歴史は、AGIなどAIができることについて根拠のない主張をするハイプと錬金術で満ちています。したがって、AIの学生は健全な疑問を持つ必要もあります[8]。
これがAIのウェブサイトであるため、ほとんどの読者が次の目標を持っていると仮定します:
- 「14/8から20/8までの週のトップ重要なコンピュータビジョン」
- 「言葉から世界へ:AIマルチモーダルによる微細なビデオ説明を用いたビデオナレーションの探求」
- 「リリに会ってください:マッキンゼーの内部生成AIツール、洞察力を解き放ち、コンサルティングの効率を向上させる」
- AI/MLエンジニアになりたい
- ソフトウェアエンジニアリングのベストプラクティスを学びたい[1][2]
人工知能エンジニアになる方法
前提条件
AI/MLを学習する前に知っておくべきいくつかの学部の前提条件があります:
- 微積分
- 離散数学
- 高度な線形代数
- 確率と統計
- 統計プログラミング
以下のコースは、通常コンピュータサイエンスの学位に必要です:
- アルゴリズムとデータ構造
- コンピュータ組織
- コンピュータネットワーク
- オペレーティングシステム
- 分散コンピューティング
GoogleがMachine LearningまたはData Scienceコースを受講する前に行うことを推奨していること
数学に関する以下のリソースが役立つと思います:
- 科学者とエンジニアのための数学リフレッシャー
- 三角法ハンドブック
- 統計で嘘をつく方法のレッスン
- 再帰ニューラルネットワークとそれを支える数学の紹介
- 無料でデータサイエンスを学ぶ
避けるべきよくある間違い
MLを学ぶ際に避けるべき初心者の間違いには、以下のものがあります[5][6][10]:
- 「X問題に最適なアルゴリズムは何ですか?」と質問すること
- MLアルゴリズムをゼロからコーディングしようとすること
- AIを学びながらカスタムデータセットを使用したり、実世界の問題を解決しようとすること
- 研究論文からAIを学ぼうとすること
- ニューラルネットワークを使用すること(最後の手段としてのみ)
ゼロからアルゴリズムをコーディングするのを避ける
応用数学では、公式の導出よりも数学の適用に重点が置かれます。同様に、AIエンジニアリングは問題を解決するためのアルゴリズムの適用です。したがって、重点は与えられた問題に利用可能なアルゴリズムを知り、それらがどのように機能し、それらを最大限に活用する方法を知ることにあります。実装の詳細ではありません。
どの有能なソフトウェアエンジニアでも、どの機械学習アルゴリズムでも実装できることができます。- ルイス大学の教授
なぜなら、ソフトウェア開発者がゼロから多くのMLアルゴリズムをコーディングし、それらを適切に実装するために必要なすべての詳細を理解することは困難すぎるからです。実際、より多くのアルゴリズムが絶えず開発されています。単に「より興味深い」またはSOTAアルゴリズムに集中することは、失敗への道であり、初心者がよく陥る間違いです。実際、MLアルゴリズムの実装方法を知ることよりも重要な他の概念が多数あります(主要なAIの概念を参照)。
AIアルゴリズムの使用をマスターした後、必要な場合には後で手でコーディングして内部の動作原理を理解しようとすることができます。
研究論文からAIを学ぼうとするのを避ける
研究論文は学習のための良いリソースではありません。読者は既に教科書でカバーされている核心の理論と概念を知っていることが前提とされています。したがって、AIを学ぶための最良のアプローチは、良い教科書を使用することです。
AI研究論文の結果は、ほとんど再現性がありませんので、それを心に留めておいてください。実際、現在AI研究においては誠実さに深刻な問題があります。IEEEのような信頼できる出版物から遠ざかるほど、問題は悪化します。
これについては、RussellとNorivg [8]や他の大学院の教科書で詳しく議論されています。
学習のためのヒント
AIを学ぶためのいくつかのヒントを紹介します:
- より単純なアルゴリズムを複雑なアルゴリズムよりも好む(Occamの剃刀の原則)。したがって、ディープラーニングモデルは最後の選択肢となるべきです。
- 最善というものはなく、十分に良いものしかない(No Free Lunch Theorem)。
- AIを使用しない場合を知る。
- AIチェックリスト。
AIの中核となる概念
学ぶべきいくつかの重要なAIの概念を紹介します:
- 問題の定義方法は?
- データセットの選択方法は?
- データの準備方法は?
- 特徴エンジニアリングの方法は?
- アルゴリズムの選択方法は?
- パフォーマンスメトリックの選択方法は?
- モデルのトレーニング方法は?
- 結果のプレゼンテーション方法は?
- ソリューションの設計と展開方法は?
- モデルのデバッグ方法は?
大学院では、AIを学ぶための適切な技法は、MLアルゴリズムのブラックボックス[7]ビュー(トップダウンアプローチ)であると教えられます。なぜなら、アルゴリズムを手動で作成すること(ボトムアップアプローチ)に時間を費やすことは避けるべきですし、特に初心者の場合はそうです。
商業用のAIソフトウェアライブラリを開発していない限り、アルゴリズムの内部実装に焦点を当てて学ぶべきことはほとんどありません。AIアルゴリズムの使用と展開方法に焦点を当てることがより重要です。
ソフトウェアエンジニアリングでは、DRY、KISS、Occamの剃刀など、多くのよく知られた原則があります。おそらく最も重要な原則は「車輪の再発明をしない」(DRTW)です。それにもかかわらず、機械学習の初心者は、ニューラルネットワークをゼロから実装しようとすることがよくあります。AIエンジニアは、AIライブラリだけでなく、アプリケーションで使用されるすべてのソフトウェアライブラリ、API、アルゴリズムの最適な使用方法を知る必要があります。
Occamの剃刀の原則: データに最も適合する最もシンプルな解決策が通常最良です。
プロのAIエンジニアは、現在のAI/MLにおいてはモデル中心ではなく、データ中心のアプローチが最善の手法であることを知っています。したがって、初心者は特定のモデル/アルゴリズムの実装の詳細よりも、データの準備、特徴エンジニアリング、次元削減などの主要な概念と技術を重点的に学ぶことに焦点を当てるべきです。さらに、AIにおいては、「最良の」モデル/アプローチを見つけようとする代わりに、「十分に良い」ものを見つけることが効果的です。
現在、AIソフトウェア開発(MLOps)においては、ソフトウェア開発ライフサイクル全体の自動化が大きな役割を果たしていますので、手動でコーディングしたアルゴリズムを実装して展開することは疑問です。実際、信頼性のあるライブラリとフレームワークがすでに利用可能であるため、カスタムコードの作成を避ける理由はたくさんあります。
要するに、実装の詳細に入る前に、AIエンジニアリングプロセスの全体像(トップダウンアプローチ)を理解することが最善です。
モデルの選択方法
初心者を助けようとする際に、私は何度か、彼らが間違ったモデルと/または間違った問題を解決するためにチュートリアル(またはさらに悪い場合はTensorflow/PyTorchのドキュメントからの例)から何百時間もコーディングしていたことを発見したことがあります。実際、彼らが間違いを犯したと指摘されても、聞く気がないことがほとんどです。これをコード中心主義と呼んでいます。
AIを学ぶ際には、まず優れた資格を持つ誰かによって書かれた、同様の問題を解決するいくつかの良いチュートリアル/例を見つけるために時間を費やすべきです。
次に、データセットを正しくモデル化していることを確認するために、データセットを理解するために時間を費やす必要があります。たとえば、データが株価データであるか、時間特徴を持っているかといった理由だけで、データを時系列としてモデル化したり、ニューラルネットワークを使用したりすることが最良とは限りません。
最後に、OrangeなどのAutoMLツールを使用して、データセット(またはデータセットのサブセット、データセットが非常に大きい場合)上で多くの単純なモデルを評価し、ベースラインとして使用する最も優れたパフォーマンスのモデルを見つけるために時間を費やすべきです。最終的に選ばれるモデルは、すべてのより単純なベースラインモデルよりもはるかに優れたパフォーマンスを発揮するはずです。
一般的に、最も複雑なSOTAモデルでもごくわずかな性能向上(3〜5%程度)しか実現できず、現実世界の問題を解決するために使用する価値はないと言えます。
チュートリアルと書籍
ML学習リソースの選択は、主に個人の好みの問題です。一般的に、AIを学ぶ際にはドキュメント以外の複数のリソースを参照することをお勧めします。私が有益だと思ったいくつかのAIリソースが含まれているVoAGIの記事「AI学習リソース」があります。AIエンジニアリングはソフトウェアエンジニアリングの拡張であるため、SWEBOKで与えられた重要な概念を徹底的に理解する必要があります。
修士号は必要ですか?
AIを学ぶために必要な時間を費やすのであれば、ほとんどのAIエンジニアリングのポジションで求められるオンラインの学位を考慮するべきです。AIは修士レベルのトピックとされていることを多くの人が忘れているようです。実際、AIエンジニアリングはエンジニアリングの一環です。多くのエンジニアリングの分野では専門の学位が必要ですが、何故かソフトウェアエンジニアリングは必要とされていないため、AIプロジェクトの85%以上が失敗するのかもしれません [6]。
次の記事が参考になるかもしれません:
- データサイエンスの修士号は必要ですか?
- データサイエンティストの採用に必要な学位を持っていますか?
- なぜ機械学習エンジニアがデータサイエンティストに取って代わるのか
- 機械学習エンジニアがデータサイエンティストに取って代わるかもしれない理由
- 人工知能の修士号-トップ10プログラム
- Lewis Universityの人工知能MSCS
結論
この記事は、自己学習アプローチに興味を持つ多くのSlack Discordフォーラムのユーザーを支援することを主な目的としています。ただし、AI / MLを学ぶために時間を費やすのであれば、キャリアの機会を大幅に増やすためにオンラインの学位に投資することが賢明です。
参考文献
[1] P. Bourque and R. E. Fairley、「Guide to the Software Engineering Body of Knowledge, v. 3」、IEEE、2014年。
[2] IEEE倫理規定
[3] ACM倫理規定
[4] J. Brownlee、「機械学習に取り組むプログラマーがよく犯す5つのミス」、Machine Learning Mastery、2014年1月39日。
[5] J. Brownlee、「ゼロから機械学習アルゴリズムをコーディングするのをやめてください」、Machine Learning Mastery、2016年10月5日。
[6] T. Shin、「機械学習を使用しない方が良い理由4つ」、Towards Data Science、2021年10月5日。
[7] E. Gamma、R. Helm、R. Johnson、J. Vlissides、「デザインパターン: 再利用可能なオブジェクト指向ソフトウェアの要素」、第1版、Addison-Wesley Professional、ISBN-10: 0201633612、1994年。
[8] S. Russell、P. Norvig、「人工知能: 現代的なアプローチ」、第4版、Upper Saddle River, NJ: Prentice Hall、ISBN: 978–0–13–604259–4、2021年。
[9] M. Hunter、「データサイエンスで最も難しいトピックをマスターするための6つの効果的な学習テクニック」、Towards Data Science、2022年6月10日。
[10] A. Joury、「アルゴリズムやモデルのことは忘れて、まず問題解決の方法を学ぶ」、Towards Data Science、2022年9月9日。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles