機械学習を学ぶ必要はありません

機械学習モデルを使用してソフトウェアを作成する方法を学ぶ


画像

免責事項:この記事は、機械学習の分野における開発チームの私の観察にのみ基づいており、業界の科学的レビューの結果ではありません。参考までに、モデルを製品化するためのオープンソースプラットフォームであるCortexの開発を支援しています。

あなたが開発者であれば、少なくともあなたは機械学習にかなりの関心を持っています。生徒が後で予測を行うことを学ぶアルゴリズムの概念は、単に...クールです。

ただし、すべての標準に従ってMLの学習を開始する場合、2週間の線形代数と多変量解析の後で、このレッスンを終了する可能性があります。

その理由は、MLの紹介資料のほとんどが開発者ではなく研究者に焦点を合わせているという事実にあります。これは、単に機械学習製品を作成したい開発者にとっては問題です。

製品を作りたいですか、それとも研究をしたいですか?


2000年代の終わりまで、機械学習はほとんどが研究上の問題でした。生産で実際に機械学習を使用する企業はそれほど多くありませんでした。

したがって、機械学習で利用できる親しみやすさに関する資料の多くは、研究アプローチに基づいています。すべては、数学的な観点からのニューラルネットワークの説明と、機械学習の基礎となる理論から始まります。逆伝播法や敵対的ネットワークなどのものが与えられます。

大学以外の関連資料でさえ、ある程度このパターンに従います。たとえば、これはTensorFlowの「Quickstart for Beginners」ライブラリから直接取得されています

画像

選択的に行動していると思われる場合は、以下を読むことをお勧めします

機械学習の基礎となる数学にすでに精通している場合、またはそれを学習したい場合は、このアプローチが適しています。ただし、機械学習を使用して物を作成することに主に関心がある場合は、これがあなたが探しているものではない可能性があります。

数学への追加としてプログラミングを使用することは、最初にアセンブラを学ぶことによってコードを書くことを学ぶことと同じです。開発者がそのように学ぶことはありません。

注:どういうわけかアセンブリ言語でコーディングすることを学んだのなら、私はすべての邪悪なコメントを私の側に認め、あなたが不明瞭なLinuxディストリビューションでブラウザを見つけたことに感銘を受けました。

コーディング方法を学んだときは、おそらく「hello world」を高級言語で書くことによってそれを行ったでしょう。次に、プロジェクトがより複雑になるにつれて、低レベルのプログラミングの研究を始めました。

このトレーニングモデルは、プロジェクトに取り組むときに優先順位を明確に設定するため、ソフトウェアを作成する人々の間で成功しています。記事を公開するよりもレコメンデーションシステムを作成することに関心がある場合は、この方法で機械学習の研究に取り組む必要があります。

ソフトウェアを作成してMLを学ぶ方法


あなたがコースを通じて最もよく学ぶタイプの人である場合、MLを使用するためのこのトップダウンの学習とプロセスのアプローチを促進するための最良のリソースは、fast.ai 実践的な深層学習者向けのコースです。

この記事の目的はfast.aiを宣伝することではありませんが、プラットフォームの創設者(Jeremy HowardとRachel Thomas)が、文字通り物事を作成することを強制する深いトレーニングを持つ開発者向けにいくつかのコースをまとめたことは注目に値します。プロジェクトに接続されています。彼らの学習スタイルをよりよく理解するには、レイチェルトーマスのビデオをご覧ください。



一方、自分で物事に没頭して作成することで最もよく学ぶタイプの人であれば、他のプログラミング分野と同じように機械学習をマスターすることができます。興味のあるプロジェクトを選択してください- 初心者向けの自然言語処理プロジェクトの巨大なリストをまとめました -選択してください。

MLを使用してソフトウェアを作成することについて理解を深めるには(このようにすると):

  1. 目標を定義します。たとえば、テキストフィールドやナンバープレート識別子のオートコンプリートを作成します。
  2. プロジェクトに適した事前に準備されたモデルを見つけます。GPT-2またはYOLOv3モデルは、前述のプロジェクトでも機能します。
  3. 必要に応じて、ライブラリをgpt-2-simpleとして使用して、モデルを微調整(独自のデータにカスタマイズ)することもできます。
  4. 最後に、モデルをマイクロサービスとしてデプロイします。


モデルがAPIとしてデプロイされると、他のWebサービスと同様にそれをリクエストし、その周りにアプリケーションを構築できます。ソロ機械学習エンジニアが作成したプロジェクトで、このプロセスの

実際のアプリケーションを確認できます



この学習方法のおかげで、さまざまな人気のあるモデルアーキテクチャに慣れ、機械学習の他のアプローチと、それらが対象とするアプリケーションについて学ぶことができます。同様に重要なのは、モデルに基づいて実際の製品を構築するために必要な機械学習インフラストラクチャについて学ぶことです。

MLベースのプロダクトを作成できたらすぐに、理論の学習を開始します


エンジニアとして、おそらく以前に何らかの形式の認証を既に実装しているでしょう。つまり、パスワードをハッシュ化したことを願っています(私はそう思います)。

パスワードハッシュを設定するときに、カスタムハッシュアルゴリズムを作成しましたか?数週間暗号を勉強しましたか?それともそれを使っただけbcryptですか?

同様に、最初のWebアプリケーションを作成したときに、データベースを数週間研究しましたか?最初から書きましたか?または、お気に入りのフレームワークのランダムORMを使用しましたか?
同じロジックが機械学習にも適用されます。ソフトウェアを作成するのが好きな人は、機械学習ソフトウェアを作成することから始めて、ツール、事前に準備されたモデル、機械学習フレームワークを使用して、基礎となるML理論から離れることができます。次に、興味がある場合、またはプロジェクトにさらに複雑さが必要な場合は、深く掘り下げて、すべてがどのように機能するかを確認してください。



画像
SkillFactoryのオンラインコースを受講して、スキルと給与の需要の高い職業をゼロから習得する方法の詳細をご覧ください。



続きを読む



All Articles