機械学習エンジニア:神話と現実
公開: 2018-05-08機械学習は、コンピューターに学習し、繰り返しタスクを改善する能力を提供するものです。 これは、新しいデータセットにさらされたときに自分自身を変更(変更)できる動的アルゴリズムの開発に焦点を当てています。 簡単に言えば、機械学習がFacebookを「この写真で友達にタグ付けしたいですか?」 、集合写真をアップロードするたびに。 これらすべてを実現するために舞台裏で働いている人々は、謙虚に機械学習エンジニアとして知られています。
現在、データサイエンスの幅広い傘下にある他のすべてのドメインと同様に、機械学習にも多くの誤解があります。 そして、それらをクリアすることが、まさに今日の私たちの目標です。 ただし、最初に、機械学習エンジニアが持つスキルやツールを含めて、そのエンジニアの生活を紹介することが重要です。
まず、データサイエンスから機械学習を明確に区別しましょう。
目次
機械学習エンジニアはデータサイエンティストですか?
データサイエンスは包括的な用語ですが、機械学習の仕組みには根本的に異なるものがあります。 データサイエンスとアナリストは基本的にデータを調査し、ビジネス要件に適合するアプローチまたはモデルを見つけようとします。
一方、機械学習はこのモデルを完全に変えます。 機械学習エンジニアはデータを直接処理していません。 彼らは彼らが望む結果を知っていますが、アルゴリズムに彼らのために仕事をさせています。 機械学習は、Goチャンピオンを打ち負かす、写真にタグを付ける、または言語間で翻訳する機械を構築します。 これらの目標は、データ分析の場合とは異なり、データを注意深く調査しても達成されません。 探索するデータがたくさんあり、取り組むには次元が多すぎます(たとえば、囲碁ゲームの次元は何ですか?または言語ですか?)機械学習の約束は、モデル自体を構築することです:データ探索を行いますとチューニング。
データサイエンス、機械学習、ビッグデータの違い!
その結果、機械学習エンジニアは、データサイエンティストやアナリストほど「探索」しません。少なくとも、本当の意味ではそうはいきません。 彼らの目標は、データに重要性を見いだすことではありません。彼らは、重要性がすでにそこにあると信じています。 代わりに、データを分析して結果を生成できるモデル/アルゴリズム/マシン/システムを構築することを目指しています。 または、機能するニューラルネットワークを作成します。これを調整して、任意の入力データセットで信頼できる結果を生成できます。
機械学習エンジニアを中心に展開するいくつかの重要なポイントを見てみましょう。
- 彼らは、典型的なデータアナリスト/科学者よりも強力なソフトウェアエンジニアリングスキルを持っています。 機械学習エンジニアは、生産システムの保守を担当するエンジニアと協力します。 したがって、彼らはソフトウェア開発方法論、アジャイルプラクティス、および最新のソフトウェア開発ツールを理解する必要があります。 EclipseやIntelliJなどのIDEから、ソフトウェア展開パイプラインのコンポーネントに至るまで、すべてを徹底する必要があります。
- 機械学習エンジニアは、データ製品を本番環境で機能させることに重点を置いています。 結果として、彼らは彼らのアプローチにおいて全体論的です。 これらはソフトウェア開発チームの中核部分を形成するため、A/Bテストとは何かを知っています。 彼らはそれを「理解」するだけでなく、実動システムでA/Bテストを実行する方法も知っています。 彼らは、アプリケーションの運命に対するロギングとセキュリティの重要性を理解しています。
- 本番環境でのデータ製品の監視に関しては、彼らは真剣に取り組んでいます。 アプリケーション監視のプロセスを自動化するための多くのリソースがありますが、機械学習の要件はさらに一歩進んでいます。 データパイプライン、モデル、アルゴリズム、さらにはシステムが古くなり、再トレーニングが必要になる可能性があります。 機械学習システムは、それを供給するデータパイプラインを危険にさらすことによって簡単に歪められる可能性があります。 したがって、機械学習エンジニアは常にこれらの侵害を検出する方法を知る必要があります。
機械学習エンジニアを成功させるために必要なスキル:
- コンピュータサイエンスとプログラミングの基礎知識
- 確率と統計
- データのモデリングと評価
- 使用する適切なMLライブラリを見つけ、必要に応じて調整します
- ソフトウェアエンジニアリングとモデリング

神話#1:機械学習エンジニアは、システムを人間とまったく同じように考えさせます。
これは最終的な最終目標ですが、現時点では真実からはほど遠いです。 子供の学習プロセスと機械の学習プロセスを簡単に比較すると、機械学習はまだ初期段階にあることがわかります。 たとえば、赤ちゃんは歩くことや食べることなどの簡単なことのために何百人もの人間を観察する必要はありません。 彼らは自分たちの目標を設定し、周りの他の人間を認識し、直感的に学習戦略を作成し、成功するまで試行錯誤しながらそれを洗練させます。 外部からの介入や指導があまりなくても、赤ちゃんは他の重要なこととともに、歩き方をうまく学ぶことができます。
一方、機械は学習の各段階で監督を必要とします。 さらに、子供は複数の感覚器官から受け取ったさまざまな入力を総合的かつ効率的に簡単に組み合わせることができます。 たとえば、子供は一瞬で写真を認識し、その上に書かれたテキストを理解することができます。 しかし、マシンに同じことを教えるには、それぞれがデータの認識、ノイズの識別、およびテキストの理解のために、個別の高度なアルゴリズムが必要です。

神話#2:すべてのデータは機械学習エンジニアに役立ちます。
機械学習エンジニアもデータを必要としていることは間違いありませんが、すべてが機械学習に関連しているわけではありません。 システムが処理する必要のあるパターンと結果をカバーする代表的なデータが必要です。 機械学習モデルはそれらの無関係なパターンを反映し、使用されるデータでそれらを探すため、データに無関係なパターンを含めるべきではありません。
トレーニングに使用するすべてのデータには、適切なラベルを付け、機械学習システムに尋ねる質問に一致する機能をラベル付けする必要があります。これには多くの作業が必要です。 このデータはすべて、システムに提示する質問に一致する機能で適切にラベル付けする必要があります。 また、手付かずで、矛盾やエラーがないようにする必要があります。 したがって、すべてのデータが機械学習エンジニアにとって価値があるわけではありません。関連するデータだけが価値があります。
次の大きなものに目を光らせてください:機械学習
神話#3:機械学習エンジニアは既存の知識を無視します。
多くの分野の専門家は、学習アルゴリズムで「白紙の状態」のアプローチを採用しているため、機械学習を却下しています。 彼らは、すべての機械学習アルゴリズムがゼロから始まると想定しています–既存のデータの知識はありません。 機械学習エンジニアは、学習が継続的な監視を必要とする長いプロセスであることをよりよく理解しています。 データをアルゴリズムにフィードするだけでは模倣できません。 したがって、すべての学習アルゴリズムが白紙の状態で始まるわけではありません。 データセットを使用して、既存の知識のプールを改良するものもあります。 結局のところ、それは組織のビジネス要件によって異なります。
神話#4:単純な機械学習モデルは常により正確です。
これはオッカムのかみそりと一致しています。 しかし、かみそりは、理由ではなく、より簡単な説明が望ましいと言っているだけだと言いましょう。 それらは、理解しやすく、覚えやすく、扱いやすいため、好まれています。 ただし、機械学習に関しては、データと一致する最も単純な仮説は、より複雑な仮説よりも予測の精度が低い場合があります。 最も強力な学習アルゴリズムのいくつかは、不当に精巧に見えるモデルを出力します。データを正しく適合させた後もモデルを追加し続けることもありますが、それが、それほど強力ではないモデルを打ち負かす方法です。

世界のトップ大学からオンラインでMLコースを学びましょう。 マスター、エグゼクティブPGP、または高度な証明書プログラムを取得して、キャリアを迅速に追跡します。 機械学習は、コンピューターサイエンスと数学を組み合わせたデータサイエンスの一部であるため、機械学習エンジニアにとって数学の知識は必須です。 機械学習のアルゴリズムを作成して理解するには、線形代数、微積分、最適化、確率、統計などの数学的概念の知識が必要になります。 より正確に言うと、データ分析に役立つ数学演算の基本的な考え方が必要です。 しかし、最良の部分は、機械学習を学びながら、時間とともにこれらの数学の基本的な概念を学ぶことができることです。これらの概念のほとんどは、適度に理解しやすいものです。 データサイエンスと機械学習は密接に関連していることを私たちは知っています。そのため、機械学習は、与えられたデータとそれを取り込むアルゴリズムの能力と同じくらい優れています。 データサイエンティストは、機械学習の基本を理解している必要があります。 データサイエンティストは、大量のデータから有用な知識を抽出します。 彼らは傾向を明らかにし、特定の事業運営を自動化するためのソリューションの開発を支援します。 正確な予測と見積もりを行うには、データサイエンティストは機械学習を把握する必要があります。 これにより、ロボットは人間の介入を必要とせずに、より適切な判断を下し、より賢明な行動をリアルタイムでとることができます。 データマイニングと解釈は、機械学習によって変革されています。 従来の統計手順は、より正確な自動化された遺伝的アルゴリズムのセットに取って代わられました。 Pythonは、データ分析と機械学習で最もよく使用される言語です。 機械学習エンジニアの大多数はNLPチャレンジにPythonを選択し、感情分析ジョブにはRまたはPythonが推奨され、セキュリティや脅威検出などの他の機械学習アプリケーションにはJavaが使用されます。 Pythonは、その広範なライブラリエコシステムにより、データ分析、機械学習、人工知能(AI)の推奨言語になりました。これにより、機械学習の専門家はデータに簡単にアクセス、管理、変換、分析できます。 Pythonは、プラットフォームに依存しないこと、シンプルさ、読みやすさから、機械学習開発者の間で人気があります。 数学は機械学習エンジニアにとって必須ですか?
データサイエンティストは機械学習を必要としていますか?
MLエンジニアが好むコーディング言語はどれですか?