機械学習と従来のプログラミングの違いについて話す

機械学習と従来のプログラミングの違いについて話す

[[264779]]

AI と ML は誇張されすぎていて、if 文を書いたりプログラミングに関係するだけだと考える人もいますが、慎重に考えてこれらの見解を区別することをお勧めします。この記事では、関連する用語を比較し、これら 2 つの分野の専門家の違い、つまり彼らは何をするのかを示します。ソフトウェア エンジニア、ソフトウェア開発者、機械学習の専門家、データ サイエンティスト... プログラマーやコーダーと呼ばれる人もいます。中には大物、マスター、スターになる人もいます。しかし、それらは本当に同じなのでしょうか?もしそうなら、機械学習と従来のプログラミングの違いは正確には何でしょうか?

まず、機械学習とは何でしょうか?

[[264780]]

言うのは簡単ですが、AI や ML はプログラミングに過ぎず、さらに深く言えば単純な統計にすぎません。他に何を知ることができますか? ML は数学とアルゴリズムを説明する新しい単語に過ぎないのでしょうか?この単純化は時々面白いように思えるかもしれませんが、ML がより複雑であることは明らかです。

しかし、もっと適切な説明を見てみましょう。

したがって、簡単に言えば、人工知能は、画像処理、認知科学、ニューラルネットワークなどの他の分野を含む大きなバスケットです。機械学習もこの大きなバスケットの一部です。中心となる考え方は、コンピューターが事前に記述されたアルゴリズムを使用するだけでなく、問題を解決する方法を自ら学習するというものです。あるいは、別の言い方をすれば、アーサー・サミュエル(ML という用語を実際に作った人物)によって優れた定義が与えられています。

機械学習は、明示的にプログラムすることなくコンピューターが学習できるようにする研究分野です。

はい、ML は、アルゴリズムで解決するのが難しいさまざまな複雑なタスクを機械に解決する方法を教えます。それらのタスクとは何ですか?まあ、実際にそれらに遭遇したことがあるかもしれません。たとえば、携帯電話での顔認識や音声認識、車の運転(Google 自動運転車)、症状による病気の診断(Watson)、書籍(Amazon)、映画(Netflix)、音楽(Spotify)、パーソナル アシスタント(Siri、Cortana)などの商品の推奨など、リストはどんどん続きます。

これで十分に明確になったと思いますので、ML に関する別の重要な質問に移りましょう。

効果的な ML 技術は、条件付きで3 つのアクセシビリティ レベルに分類できます。これはどういう意味ですか?最初のレベルは、Google や IBM などのテクノロジー大手の具体的なユースケースです。 2 番目のレベルは、ある程度の知識を持つ学生が使用できるレベルです。 ML アクセシビリティの 3 番目のレベルは、おばあちゃんでも扱えるということです。

現在の開発段階では、機械学習はレベル 2 とレベル 3 の交差点にあります。したがって、このテクノロジーの助けを借りて、世界は日々変化していくでしょう。

ML についてもう少し説明します。ほとんどの ML タスクは、教師あり学習 (教師あり学習) と教師なし学習 (教師なし学習) に分けられます。片手に鞭を持ち、もう片方の手にキャンディーを持っているプログラマーを想像しているなら、それは少し間違いです。

「Teacher」という名前は、データ処理に人間が介入するという考えを暗示しています。トレーニングに教師が関与する場合、これは教師あり学習であり、データがあり、それに基づいて何かを予測する必要があります。一方、教師が教えていない場合、これは教師なし学習であり、データはありますが、その特性を自分で見つける必要があります。

では、プログラミングとどう違うのでしょうか?

従来のプログラミングでは、プログラムの動作をハードコードします。機械学習では、データから学習する多くのことを機械に任せます。

したがって、これらの仕事は互換性がありません。データ エンジニアは従来のプログラミングの仕事に取って代わることはできず、その逆も同様です。すべてのデータ エンジニアは少なくとも 1 つのプログラミング言語を使用する必要がありますが、従来のプログラミングはデータ エンジニアの仕事のほんの一部にすぎません。一方で、ソフトウェア開発者が ML アルゴリズムを使用して Web サイトを立ち上げているとは言えません。

ML は従来のプログラミング手法を置き換えるものではなく、補完するものです。たとえば、オンライン取引プラットフォームの予測アルゴリズムの構築には ML を使用できますが、プラットフォームの UI、データ視覚化、その他の要素は依然として Ruby や Java などの主流のプログラミング言語で記述されています。

つまり、重要な点は、ML は従来のプログラミング戦略では要件を満たすことができないシナリオで使用され、それだけではタスクを完全に完了するには不十分であるということです。

では、実装上これは何を意味するのでしょうか?為替レート予測という古典的な ML 問題の要件を使用して説明しましょう。

従来のプログラミング手法

どのようなソリューションでも、最初のタスクは最も適切なアルゴリズムを作成し、コードを記述することです。その後、入力パラメータを設定する必要があり、実装されたアルゴリズムが正しければ、期待どおりの結果が生成されます。

ソフトウェア開発者がソリューションを作成する方法

しかし、何かを予測したい場合には、さまざまな入力パラメータを持つアルゴリズムを使用する必要があります。為替レートを予測するには、昨日の為替レートに関する詳細な情報と、通貨を発行する国の外部および内部の経済変化に関するデータを追加する必要があります。

したがって、一連のパラメータを受け入れ、入力データに基づいて新しい為替レートを予測できるソリューションを設計する必要があります。

非常に基本的でスケーラブルでないモデルを構築するには、有限セットの数百または数千のパラメータを追加する必要があります。はい、そのような膨大なデータを処理するのは誰にとっても困難です。

このタスクでは機械学習の手法を使用できますが、どのように実行するのでしょうか?

同じ問題を ML 手法で解決するために、データ エンジニアはまったく異なるプロセスを使用します。アルゴリズムを自ら開発するのではなく、半自動モデル構築のために一連の履歴データを収集する必要があります。

満足のいくデータセットを取得したら、データ エンジニアはそれをカスタマイズされた ML アルゴリズムにロードします。その結果、新しいデータを入力として受け取り、新しい結果を予測できるモデルが生まれます。

データエンジニアが機械学習を使ってソリューションを設計する方法

ML の注目すべき特徴は、モデル構築が不要なことです。この複雑だが有意義な作業は、ML アルゴリズムによって実行されます。 ML エキスパートは、これに小さな編集のみを行います。

ML とプログラミングのもう 1 つの明確な違いは、モデルが処理できる入力パラメータの数にあります。正確に予測するには、何千ものパラメータを追加し、各パラメータが最終結果に影響を与えるため、高い精度で実行する必要があります。人間がこれらすべての詳細を使用して合理的な方法でアルゴリズムを構築するのは困難です。

しかし、ML にはそのような制限はありません。十分な処理能力とメモリがある限り、必要な数の入力パラメータを使用できます。この事実こそが、ML が今日これほど強力かつ広く普及している理由であることは間違いありません。

要約すると、ML の専門家、データ サイエンティスト、プログラマー、ソフトウェア エンジニア… 具体的に誰が誰なのでしょうか?

[[264781]]

Wikipedia の定義によると、データ サイエンスは、科学的な方法、プロセス、アルゴリズム、システムを使用して、構造化データと非構造化データから知識と洞察を抽出する学際的な分野です。

見た目はそんなにかっこよくないですね。

しかし、ここに興味深い点があります:

最新のハードウェア、最も強力なプログラミング システム、最も効率的なアルゴリズムを使用して問題を解決します。

後ほどさらに興味深い部分があります:

2012年、ハーバード・ビジネス・レビュー誌はこれを「21世紀で最もセクシーな仕事」と呼んだ。

データ サイエンスは、コンピューター サイエンスと同様に、データを処理し、そこから有用な情報を抽出することを目的とした別の分野です。

プログラミングについてはどうですか?今日のデータ サイエンティストは、研究目的でこのスキルを習得する必要があります。彼らはプログラマーであるだけでなく、応用統計学や研究のバックグラウンドも持っている必要があります。特に、製品にデータサイエンスや機械学習のテクノロジーを提供している企業で、ソフトウェアエンジニアリングに進む人もいます。最も興味深いのは、データ サイエンスにはプログラミングは必要なく、Matlab、SPSS、SAS などのツールに限定されることです。

機械学習エンジニアの役割とはどのようなものですか?

機械学習エンジニアのポジションは、より「技術的」です。言い換えれば、機械学習エンジニアは、データサイエンスよりも従来のソフトウェアエンジニアリングとの共通点が多いということです。

ML エンジニアの標準的なタスクは通常、データ サイエンティストのタスクと似ていますが、データの処理、さまざまな機械学習アルゴリズムの試用による問題の解決、プロトタイプや既製のソリューションの作成も必要になります。

重要な違いを強調したいと思います。

  • 1 つ以上の言語 (通常は Python) での強力なプログラミング スキル。
  • データ分析プロセスで作業する能力よりも、機械学習アルゴリズムを重視します。
  • NumPy や SciPy などの既存のライブラリに基づくさまざまなテクノロジを使用する機能。
  • Hadoop などを使用して分散アプリケーションを作成する機能。

さて、プログラミングに戻り、プログラマーに割り当てられたタスクを詳しく見てみましょう。

プログラマーは、実際にはデータアナリストやビジネスシステム開発者のようなものです。システムを自ら構築するのではなく、既存のシステムに対して緩く構造化されたコードを記述します。確かに、データ サイエンスはプログラミングの新しい波と呼ぶことができますが、コーディングはそのほんの一部にすぎません。だから誤解しないでください。

しかし、さらに深く掘り下げてみると、ソフトウェア エンジニアソフトウェア開発者など、同じではない用語があることがわかります。たとえば、ソフトウェア エンジニアはエンジニアリングを設計する必要があります。これらは、本番アプリケーション、分散システム、同時実行性、ビルド システム、マイクロサービスなどをカバーします。一方、ソフトウェア開発者は、実装だけでなく、ソフトウェア開発のすべてのサイクルを理解する必要があります (実装ではプログラミングやコーディングがまったく必要ない場合もあります)。

では、プログラミングと機械学習の違いを感じていますか?この記事が、これらの用語に関する混乱を避けるのに役立つことを願っています。これらの人々全員に共通点、つまりテクノロジーがあることは間違いありませんが、違いはそれよりはるかに大きいです。したがって、機械学習エンジニア、ソフトウェア エンジニア、ソフトウェア開発者はまったく互換性がありません。

<<:  Python コードを書くことができる人工知能 Kite が Linux のサポートを発表。プログラマーは職を失うことになるのでしょうか?

>>:  さようなら、宅配便業者さん!

推薦する

変革のトレンド: ジェネレーティブ AI とソフトウェア開発への影響

人工知能の出現により、ソフトウェア開発の継続的な発展が加速しています。この強力なテクノロジーは、ソフ...

未来を決定づけるトップ10の人工知能技術

人工知能 (AI) は単なるテクノロジーの流行語ではありません。私たちの生活や仕事のやり方を急速に変...

...

ビッグニュース! AIが生物学における50年来の課題を解決し、タンパク質の折り畳み問題を解明

生物学における最大の謎の一つであるタンパク質折り畳み問題が AI によって解決されました。 CASP...

IDC: 企業の AI ソリューションへの支出は 2021 年に 3,420 億ドルに達すると予想

[[417110]] IDCの世界人工知能市場に関する最新の半期追跡レポートによると、世界のAI市場...

1 分以内に GPT アプリケーションを開発しましょう!さまざまな専門家が懸命に取り組んでおり、ネットユーザーは「ChatGPTは新しいiPhoneだ」と言っている

GPT はまだ正式にリリースされていませんが、誰かがすでに「先走って」いるのでしょうか? !ほら、社...

最も人気のある 12 の AI ツール、ライブラリ、プラットフォーム

[[205783]]近年 AI の利用が増えているため、利用可能な AI ツール、ライブラリ、プラッ...

...

詳細な分析:AI LLMフレームワークの主要コンポーネントとその機能

この記事では、AI フレームワークの高レベルなアーキテクチャを詳しく説明し、その内部コンポーネントと...

テクノロジーはサプライチェーンの未来をどう変えるのか

古代のシルクロードから、今日の AI 主導の超高精度な小売補充需要予測に至るまで、テクノロジーは常に...

寒波警報(黄色)発令中、ドローンの使用にはご注意ください!

11月3日、中央気象台は今年初の黄色寒波警報を発令し、最強の寒波が来ています!警報によると、11月...

小井ロボットの華蔵エコシステムの出現は、大型モデルの商業化の始まりを示しています

10月26日、「人工知能分野での中国初の上場企業」であるXiaoi RobotがHuazang Un...

...

...

Stack Overflow は独自の生成 AI ツールを公開するためにスタッフの 28% を削減

これは ChatGPT が直接引き起こした大規模なレイオフである可能性があります。世界最大のプログラ...