普通のプログラマーはどうやって AI を活用するのでしょうか?

普通のプログラマーはどうやって AI を活用するのでしょうか?

[[199775]]

現在、人工知能はますます人気が高まっている分野となっています。普通のプログラマーが人工知能をどのように活用できるかが、Zhihu の疑問です。この記事は、この質問に対する私の回答のアーカイブ版です。元の回答に比べて、いくつか追加コンテンツがあります。

1. 目的

この記事の目的は、「普通の」プログラマーが AI の分野に足を踏み入れるのに役立つ、シンプルでスムーズ、かつ実装しやすい学習方法を提供することです。ここで、一般的なプログラマーの私の定義は、学部レベルの知識を持つ人、普段は仕事で忙しい人、データへのアクセスが制限されている人です。したがって、この記事は、AI に関する「ゼロからの」入門チュートリアルのようなものです。

2. AI入門

AI、つまり人工知能には、機械学習だけが含まれるわけではありません。かつては、記号とロジックが人工知能実現の鍵と考えられていましたが、現在では統計に基づく機械学習が主流となっています。最近とても人気があるディープラーニングは機械学習のサブ項目です。現時点では、AIの学習は主に機械学習の学習であると言えます。

しかし、人工知能は機械学習と同じではないため、この分野に参入する際にはこれを明確に理解する必要があります。 AI分野の発展の歴史を知るには、周教授の著書『機械学習入門』を読むことをお勧めします。次の質問は、「AIのドアは簡単に渡れるか?」です。実は、渡るのは簡単ではありません。機械学習を例に挙げてみましょう。

学習プロセスでは、多数の複雑な数式に直面することになります。実際のプロジェクトでは、データ不足や難しいパラメータ調整に直面することになります。将来この方向が流行るだろうと単純に考えていると、これらの困難によって人々は簡単に諦めてしまうでしょう。一般的なプログラマーの特性を考えると、このような難しい科目を学ぶことは不可能でしょうか? 答えは「いいえ」です。適切な学習方法を開発するだけです。

3. 学習方法

簡単に言えば、学習方法を設定するということは、次の質問に答えることです。何を学びたいのか?どうやって学ぶのか?どうやって学ぶのか?これらの 3 つの質問は、学習目標、学習ガイドライン、学習計画として要約できます。学習目標は非常に明確で、AI の分野に足を踏み入れることです。この目標は大きくないので、達成しやすいです。 「目標が大きすぎると、将来それを諦める理由がたくさん見つかるでしょう。」

学習方針は「興味を第一に、実践と学習を組み合わせる」と要約できます。簡単に言えば、まず興味を育て、次に学習の中に実践を織り交ぜ、螺旋状に向上していくことです。この方法は学習に効果的であり、人々が簡単に諦めないようにします。学習ポリシーが決まったら、学習ルートとも呼ばれる学習計画を作成できます。以下は学習パスの紹介です。

4. 学習ルート

私が推奨する学習パスは次のとおりです。

図1 AI分野の学習ロードマップ

この学習ルートは、まずこの分野を理解し、包括的なビジョンを確立し、十分な興味を育み、次に機械学習の基礎を学び始めるように設計されています。ここでは、最も簡単なコースから最も高度なコースまで選択します。コースには、実際の戦闘に十分な実験が含まれている必要があります。基礎が築かれた後は、機械学習を十分に理解し、それを活用して実際の問題を解決できるようになります。

この時点では、機械学習の手法はまだブラックボックスとして扱うことができます。実践経験を積んだ後、勉強を続けることを検討できます。現時点では、ディープラーニングを続けるか、機械学習を続けるかという 2 つの選択肢があります。ディープラーニングは現在、機械学習の中で最もホットな分野です。その手法の一部は従来の機械学習とは異なるため、個別に研究することができます。機械学習には、ディープラーニングに加えて、統計学習やアンサンブル学習などの実用的な手法も含まれます。

条件が整えば、両方に共通するルールもあるため、両方を同時に学習できます。学習を完了すると、強力な知識が蓄積され、より難しい実践的な演習に進むことができます。現時点では、2 つの選択肢があります。業界の人々は、オープンソース プロジェクトを見て、コードを変更する目的でコードを読むことを選択できます。学術界の人々は、特定の分野の論文を読んで、問題を解決するために論文を発表したいと考えることができます。

どちらにしても、確かな知識と強力なコーディング能力が求められるため、自分のレベルをテストしてトレーニングするとよいでしょう。この段階を通過すると、AIの分野に足を踏み入れたと言えます。 「師匠はあなたを門まで導きますが、実践するのはあなた次第です。」残りの道は自分で歩かなければなりません。

各段階の詳細な紹介は次のとおりです。

0. 現場の理解

知識を学ぶ前に、まずその知識が何なのか、その知識で何ができるのか、その価値は何なのかを理解することが第一歩です。これらを理解していないと、学習そのものが方向を見失った船のようなものです。どこへ向かえばよいのかわからず、沈没する大きなリスクがあります。これらの問題を理解した後、興味を育むことができます。興味は人生の指針です。学習の意欲と忍耐力があれば、次のいくつかの段階に対処することができます。機械学習とは何か、何ができるのか、そしてディープラーニングや人工知能との関係について詳しく知りたい場合は、私のブログ「機械学習を始める」をお読みください。

1. 知識の準備

学校を離れてから長い時間が経っていたり、基礎がしっかりしていないと感じる場合は、事前に予習しておくのがベストです。 「仕事をうまくやりたかったら、まず道具を研がなければなりません。」以下の準備作業はそれほど多くはありませんが、学習の後の段階に対処するには十分です。

数学:以下の基礎知識を復習します。線形代数: 行列の乗算、高度な数学: 微分、確率論: 条件付き確率と事後確率。その他の知識は、その後の学習プロセスで必要に応じて補足することができます。

英語: iCiBa などのオンライン英語辞書を常に携帯しておくと、英語の情報 Web ページを簡単に読むことができます。

FQ: Google はいつでもどこでも使えるので、とても重要なツールです。 Baidu にある情報が役に立たないというわけではありませんが、多くの場合、特に英語のキーワードを検索する場合、Google にある情報の方が Baidu にある何十ページもの情報よりも役立ちます。学習効率を向上させるには、時間を節約することが非常に重要です。

2. 機械学習

機械学習に関する最初のコースは、Andrew Ng の「機械学習」です。このコースの特徴は、難易度が中程度で、実践的な例が十分にあり、初めて学習する人に最適です。以下の理由により、このコースはお勧めしません。

  • 時間: cs229 はまだ早すぎます。一部の知識はもはや今日の発展に追いつくことができません。最も人気のあるニューラル ネットワークについては簡単に説明するだけです。 Cousera のニューラル ネットワークのコースは 2 回の授業で実施されました。非常に詳細な内容でした。
  • 指導: cs229 での Ng の指導は、おそらくオンライン指導に直面していたため、少し未熟でした。実際に彼が明確に説明していない質問が多く、下にいる人からの質問は実は非常に迷惑ですが、それらの人の質問は気にしないことが多いです。 Coursera ではこの点が大幅に改善されました。Ng の指導レベルが大幅に向上していることに気づくでしょう。彼は段階的に、誠実に、最も単純なものから最も複雑なものまで教えてくれます。また、理解できない単語や用語に遭遇しても心配しないように言ってくれます。さらに重要なのは、導出と図が完璧すぎるのではなく、非常に詳細で明確であることです。これは本当に強くお勧めします。
  • 字幕: cs229 の字幕の品質は Coursera のものよりもはるかに劣ります。 Coursera の中国語字幕は多くの人にレビューされているため、品質は保証されています。
  • 宿題: cs229 には宿題はありませんが、宿題をすることはできますが、誰もそれを読みません。これは、毎週締め切りがあり、提出時に各課題が採点される Coursera の課題に比べるとはるかに劣ります。さらに重要なのは、各課題に実践的な例が用意されており、段階的に練習して自分の結果を確認できるため、達成感を十分に得られることです。

3. 実践プロジェクト

基礎コースを修了すると、機械学習についての基礎的な理解が得られます。今のところ、それらを使用しても問題はありません。機械学習アルゴリズムをブラックボックスとして扱い、データを入力すると、結果が得られます。実際の戦闘では、データの取得方法やパラメータの調整方法にさらに注意を払う必要があります。時間があれば、簡単な実践的なプロジェクトを自分で行うのが最善でしょう。

ここでは、画像 (コンピューター ビジョン)、オーディオ (音声認識)、テキスト (自然言語処理) など、アプリケーションの方向を選択する必要があります。ここでは画像フィールドを選択することをお勧めします。ここには多くのオープンソース プロジェクトがあり、比較的簡単に始めることができます。開発には、ニューラル ネットワーク、SVM、その他の機械学習アルゴリズムがすでに実装されている OpenCV を使用できます。プロジェクトが完了したら、Github にオープンソースとして公開し、継続的に改善することができます。実践的なプロジェクトを完了した後、さらに学習を続けることができます。この時点では、ディープラーニングと継続的な機械学習の 2 つのオプションがあります。

4. ディープラーニング

ディープラーニング: ディープラーニングは現在最も注目されている研究分野です。知識の更新が早く、比較的断片化しており、体系的に解説した書籍がないなどの特徴があります。そのため、学習リソースは比較的散在しています。ここではいくつかのリソースを紹介します。推奨されない部分は、悪いという意味ではありませんが、この初心者段階には適していません。

  • 推奨、UFLDL: Andrew Ng によって書かれた非常に優れた基本的な DL チュートリアルです。非常に詳細な導出と翻訳があり、翻訳は高品質です。
  • おすすめ、ディープラーニング(論文):2015年にNatureに掲載された、ディープラーニング分野のビッグネーム3人が書いた論文。論文を全部読むと、世界を俯瞰したような気分になります。超おすすめです。ディープラーニングについて学ぶために 1 つの論文しか読めない場合は、この論文をお勧めします。この論文には同名の中国語訳があります。
  • おすすめ: ニューラルネットワークとディープラーニング: この本の著者は、深遠な真理を平易な言葉で表現するのがとても上手です。翻訳はありませんが、読むのは難しくありません。
  • 推奨: リカレント ニューラル ネットワーク: このコースでは、実際の例を使用して RNN について説明します。コースを完了すると、RNN の仕組みを明確に理解できるようになります。これは、いくつかの関連論文を読んだだけでは得られないものです。
  • 推奨されません。機械学習のためのニューラル ネットワーク – トロント大学 | Coursera: このコースはディープラーニングの創始者によって教えられています。最大の問題は難しすぎることと、古い教師の発音があまり標準的ではないことがあることです。
  • 推奨されません。ディープラーニング(書籍):この本もディープラーニングの専門家によって書かれていますが、2 番目の著者である彼の学生が書いたように感じられます。内容は豊富ですが、あまり語られていないように感じます。論文から引用した内容だということだけが書かれ​​ています。この場合、論文を直接読んだ方が適切かもしれません。
  • 推奨されません。cs231n: Li Feifei のコース、非常に有名、CNN に特化しています。しかし、このコースには大きな問題があります。それは、字幕がないことです。YouTube からの自動翻訳字幕はありますが、何もないより悪いです。

5. 機械学習を継続する

ディープラーニングは必ずしも将来的に主流になるわけではない、少なくとも一部の専門家はそう考えています。従来の機械学習には、体系的な知識と比較的古典的な書籍という特徴があります。その中で、統計学習(SVM に代表される)とアンサンブル学習(adaboost に代表される)は、実際に最も広く使用されている手法です。関連するリソースをいくつか紹介します。

推薦、機械学習(周志華):かつてはPRMLが機械学習の定番の教科書でしたが、周教授の本が出版された今ではそうではありません。まず、周先生の本を読むことをお勧めします。この本の特徴の一つは、最も難しい真実でさえも、シンプルで洗練された言葉で表現できることです。周氏はこう言っています。「あなたのレベルは、簡単なものを難しくするのではなく、難しいことを簡単にすることで表れます。難しいことをするのは簡単すぎます。」

推奨されません。パターン認識と機械学習: この段階では推奨されません。 PRML は多くの機械学習手法をベイズの観点から検討しており、これが PRML の主な特徴の 1 つでもあります。しかし、初心者にとっては、この見方は実のところ不要です。さらに、この本には中国語訳がないので、この段階で読むだけでは諦めてしまいがちです。

6. オープンソースプロジェクト

知識の蓄えが十分になると、学習は再び実践段階に入ることができます。現時点では、実践は、古典的なオープンソース プロジェクトを学習するか、高品質の論文を公開するかという 2 つのステップに分けられます。オープンソース プロジェクトを学習する目的は、可能な限り最適化することです。単にコードを読むためだけに学習しても、あまり効果的ではないことがよくあります。優れたオープンソース プロジェクトは Github で検索できます。ここではディープラーニングを例に挙げます。 torch、theano など、ディープラーニング用の優れたオープンソース ライブラリは数多くあります。そのうちの 2 つを次に示します。

推奨: DeepLearnToolbox: MATLAB 言語で記述された、以前のディープラーニング ライブラリ。学習したコースからの移行に適しています。残念ながら、著者はもうそれを維持していません。

推奨、Tensorflow: Google のオープンソース ライブラリは、現在までに 40,000 を超えるスターを獲得しており、これは驚くべきことで、モバイル デバイスをサポートしています。

7. 会議論文

より良いコースでは、いくつかの論文を推奨します。有名な技術や手法は、重要な会議で生まれることがよくあります。したがって、過去の会議論文を読むことは、深く学ぶための方法です。この時点で、いくつかの論文では、苦手な数学の部分を学ぶように促されます。時には数学の知識が不十分だと感じることもあるでしょう。その場合は、補足コースを受講する必要があることがよくあります。

十分な数の論文を読んだ後、この段階では、学生であれば、論文を発表することを目的としてトピックを選択し、研究することができます。一般的に言えば、論文は仕事の成果物です。実験ベースの論文では、コードを記述したり、オープンソース プロジェクトに基づいたりすることが求められることがよくあります。したがって、オープンソース プロジェクトの研究とカンファレンス論文の作成には相関関係があります。

両方同時に勉強することができます。論文を読む場所については、CCF 推奨ランキングを見て、この分野でどの優れた会議があるのか​​を調べることができます。

画像と機械学習の分野で有名なカンファレンスを 2 つ紹介します。

  • CVPR: ICCV および ECCV とともに、コンピューター ビジョン分野の 3 大カンファレンスの 1 つです。カンファレンスのホームページは毎年変更されるため、検索には年を含める必要があることに注意してください。
  • ニューラル情報処理システムに関する会議: 略して NIPS。ここでは多くの重要な研究が発表されています。たとえば、CNN に関する重要な論文もここで発表されています。

8. 学ぶ自由

ここまで来たら、私たちはこの扉をくぐったと言えるでしょう。自分の興味に合わせて自由に勉強できます。前の段階で推奨されなかった学習リソースから学ぶこともできます。コメントは次のとおりです。

  • cs229: Ng が書いた講義ノートはとても良いです。SVM の導出は非常に明確です。SVM の推奨について学びたいと思います。
  • 機械学習のためのニューラル ネットワーク: 専門家の視点は一般人の視点とは異なります。ヒントン氏がニューラル ネットワークについてどう考えているかを見ると、これが真実であると感じることがよくあります。実際、このコースを受講することは論文を読むことと同じです。なぜなら、ほぼすべての授業の参考資料に読むべき論文が含まれているからです。
  • CS231n: 視覚認識のための畳み込みニューラル ネットワーク: 包括的な知識と詳細な課題。中国には字幕を翻訳したチームがあるはずなので、探してみてください。
  • PRML: 古典的な機械学習の本として、読む必要があります。機械学習に対する異なる視点を与えてくれます。

V. 結論

この記事の目的は、AI分野について深い理解はないが、AI分野に参入したいと考えている学生が、この分野に足を踏み入れるのを支援することです。ここで「踏み込む」とだけ言うのは、この分野を習得するのは極めて難しく、何年もの積み重ねと努力が必要だからです。ある分野を学ぶ前に、自分自身の特性を十分理解し、適切な学習方法を身につけることが非常に重要です。

まず、この分野を十分に理解し、興味を育む必要があります。勉強するときは、段階的な学習アプローチを維持し、難しすぎるリソースを急いで学習しないでください。学習と実践を組み合わせてください。読んだり見たりするのではなく、実際の実践によってのみ達成感を得ることができます。リソースを学習するときは、十分な目的が必要です。オープンソース プロジェクトを学習するためにコードを読むのではなく、オープンソース プロジェクトを作成するためにコードを読みます。論文を発表するために論文を書くのではなく、何かを行うために論文を書きます。

学習リソースが難しすぎる場合、それは必ずしもあなたの問題ではなく、学習リソースの講師または作成者の問題である可能性があります。難しい問題をわかりやすく説明できる人は本当に有能な人です。したがって、無差別に学習するのではなく、質の高いリソースから学習することが重要です。 ***、興味を持って学ぶことを忘れないでください。学習には長い時間がかかり、その過程は困難ですが、興味があるからこそ、困難を乗り越えて頑張ることができるのです。

学びの海を航海している皆さんとこの記事を共有したいと思います。私はAI分野に参入したばかりで、まだ多くの欠点を抱えている普通のプログラマーです。この記事が皆様のお役に立てれば幸いです。

<<:  ディープニューラルネットワーク (DNN) は人間の大脳皮質の構造をシミュレートしますか?

>>:  FMI2017----人工知能とビッグデータが時代を力づける

ブログ    

推薦する

クラウドがチャットボットの体験をどのように変えるか

チャットボットの無限ループや同じ質問の繰り返しにイライラしていませんか? これは顧客にとってよくある...

世界に革命をもたらす新たなテクノロジートレンド

急速な技術進歩により、私たちの知る世界は変化し続け、変革の可能性を秘めた新たな時代が到来しています。...

30億枚の写真データベースを持つ顔認識スタートアップがハッカーの攻撃を受ける! 600以上の法執行機関と銀行の情報が盗まれた

多数の法執行機関と契約している顔認識会社が、ハッキングされ顧客リスト全体が盗まれたと報告した。デイリ...

ChatGPTは30億ドルで訴えられました! OpenAIが相次いで訴訟される

ChatGPTが世界中で人気を博すにつれ、その開発元であるOpenAIはますます多くの疑問や批判に直...

米国の改正規則:自動運転車は人間の制御を必要としない

米道路交通安全局(NHTSA)は木曜日、自動運転車メーカーに対し、衝突基準を満たすために完全自動運転...

リチウム電池の防爆結果がネイチャー誌の表紙に登場、UCLAの中国チームが制作

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

人工知能は人間の知能ではない。まずは人工的なもの、そして知的なもの

人工知能に関しては、インターネット企業はすべてが「魔法のようだ」とよく言います。しかし、そうではあり...

GPT+Copilotを使えば、Rustの学習はすぐに始まります

みなさんこんにちは。私は漁師です。 Rust の学習曲線は初期段階と中期段階では急峻になりますが、今...

IT の現状レポート: IT リーダーの 90% が、生成型 AI がまもなく主流になると考えています

7月25日、海外メディアの報道によると、セールスフォース・ドットコムが発表したIT現状報告によると、...

機械学習プロジェクトにおける特徴エンジニアリングの 5 つのベスト プラクティス

私たちは長年にわたり、機械学習プロジェクトで何が機能し、何が機能しないかを特定するために、さまざまな...

パブリッククラウドが新興技術の開発をどのように促進するか

今日、クラウド コンピューティングが新興テクノロジーの主要な推進力となっていることは間違いありません...

人工知能は企業の持続可能な発展をどのようにサポートできるのでしょうか?

人工知能の普及は社会に大きな影響を与え、私たちの仕事、生活、コミュニケーションの方法を変えました。現...

Stability AI、GPUなしでローカルで実行できるStable Code 3Bモデルをリリース

文芸グラフィックの分野で非常に人気となっている Stability AI は、本日、2024 年向け...