この機械学習チュートリアルでは、機械学習の基本および中級の概念について説明します。初心者の学生と働くプロフェッショナルの両方を対象に設計されています。このチュートリアルを終えても、機械学習の専門家にはなりませんが、住宅価格を予測したり、サイズからアヤメの種類を識別したりするなど、複雑なタスクを実行できる機械学習モデルを作成できるようになります。花弁と萼片の長さ。完全な初心者ではなく、機械学習についてある程度の知識がある場合は、サブトピック 8「機械学習の種類」から始めることをお勧めします。 このチュートリアルに進む前に、Pandas と NumPy について理解しておく必要があります。これは実装部分を理解する上で重要です。このチュートリアルで説明するサブトピックは次のとおりです。
機械学習とは何ですか? アーサー・サミュエルは 1959 年に「機械学習」という用語を作り出した。彼は人工知能とコンピュータゲームの先駆者であり、機械学習を「明示的にプログラムしなくてもコンピュータに学習能力を与える研究分野」と定義しています。 簡単に言えば、機械学習とは、明示的にプログラムされなくても、プログラム(ソフトウェア)が経験から学習し、タスクを完了する能力を自ら向上できるようにする人工知能(AI)の応用です。たとえば、色、形、大きさ、その他のさまざまな属性に基づいて果物を識別するプログラムをどのように記述しますか? 1 つのアプローチは、すべてをハードコードし、いくつかのルールを作成し、それらを使用して結果を識別することです。これが唯一機能する方法のように思えますが、あらゆる状況に当てはまる完璧なルールを開発することは決してできません。この問題は、ルールなしで機械学習を使用して簡単に解決できるため、より堅牢で実用的になります。次のセクションでは、機械学習を使用してこのタスクを達成する方法について説明します。 したがって、機械学習とは、最小限の人間の介入(つまり明示的なプログラミングなし)で学習する能力を機械に与えることで、機械の動作と意思決定をより人間らしくすることだと言えます。ここで疑問が生じます。プログラムはどのようにして経験を積み、そこから学習するのでしょうか?答えはデータです。データは機械学習の原動力としても知られており、データがなければ機械学習は存在しないと言っても過言ではありません。 機械学習という用語は 1959 年に導入されて以来、かなり古い歴史を持つのに、なぜ近年まであまり話題に上らなかったのかと疑問に思うかもしれません。機械学習には膨大な計算能力、大量のデータ、そしてそのような膨大な量のデータを保存できるデバイスが必要であることに注意してください。つい最近になって、私たちはこれらすべての要件を満たし、機械学習を実践できるようになりました。 従来のプログラミングとどう違うのでしょうか? 機械学習が従来のプログラミングとどう違うのか疑問に思ったことはありませんか?従来のプログラミングでは、入力データと、適切に記述されテストされたプログラムをマシンに入力して、出力を生成します。機械学習の場合、学習フェーズでは、入力データとデータに関連付けられた出力がマシンに入力され、マシンが自分自身のプログラムを作成します。 完全に理解できなくても心配しないでください。次のセクションではより深く理解できるようになります。 なぜ機械学習が必要なのでしょうか? 今日の機械学習には、必要な注目がすべて集まっています。機械学習は、特に人間だけが持つ固有の知能を使って実行できるタスクなど、多くのタスクを自動化できます。この知能は、機械学習の助けを借りてのみ機械で再現できます。 機械学習の助けを借りて、企業は日常的なタスクを自動化できます。また、データ分析モデルの自動化と迅速な作成にも役立ちます。あらゆる業界では、業務を最適化し、情報に基づいた意思決定を行うために膨大な量のデータに依存しています。機械学習は、大量の複雑なデータを処理および分析して正確な結果を提供するモデルの作成に役立ちます。これらのモデルは正確で、スケーラブルであり、処理時間が短くなります。このような正確な機械学習モデルを構築することで、企業は収益性の高い機会を活用し、未知のリスクを回避することができます。 画像認識、テキスト生成、その他多くのユースケースが現実世界で応用されています。これにより、機械学習の専門家が求められるプロフェッショナルになるための視野が広がりました。 現在の機械学習 2012 年、Alex Krizhevsky、Geoffrey Hinton、Ilya Sutskever は、画像認識システムのエラー率を大幅に削減できるモデルを説明する影響力のある研究論文を発表しました。一方、グーグルのXラボは、YouTube動画を自動的にふるいにかけて猫が登場するものを識別する機械学習アルゴリズムを開発した。 2016年、AlphaGo(Google DeepMindの研究者が古代中国のゲームである囲碁をプレイするために作成した)は、10年以上世界トップの囲碁プレイヤーであったイ・セドルに対して5試合中4試合勝利した。 2020年現在、OpenAIはこれまでに作成された中で最も強力な言語モデルであるGPT-3をリリースしました。創造的な小説を書いたり、機能的なコードを生成したり、思慮深いビジネスメモを作成したりすることができます。その使用例は私たちの想像力によってのみ制限されます。 機械学習の特徴 自動化: 現在、Gmail アカウントには迷惑メールがすべて含まれるスパム フォルダーがあります。 Gmail がどのようにしてこれらすべてのメールがスパムであると認識するのか疑問に思うかもしれません。これが機械学習の仕事です。 スパムを識別できるため、このプロセスを自動化するのは簡単です。反復的なタスクを自動化する機能は、機械学習の最大の特徴の 1 つです。すでに多くの組織が機械学習ベースの事務処理と電子メールの自動化を活用しています。 たとえば、金融分野では、反復的で、データ量が多く、予測可能なタスクを多数実行する必要があります。そのため、業界ではさまざまな種類の機械学習ソリューションが広く使用されています。 顧客体験の向上: どの企業にとっても、カスタマイズされた体験を提供し、より良いサービスを提供することは、エンゲージメントを高め、ブランド ロイヤルティを高め、長期的な顧客関係を構築するための最も重要な方法の 1 つです。 機械学習はこれら両方を達成するのに役立ちます。ショッピングサイトを開いたり、インターネットで広告を見たりするときに、そのほとんどが最近検索したものに関連していることに気づいたことはありませんか?これは、機械学習によって驚くほど正確な推奨システムを作成できるようになるためです。これらは、ユーザー エクスペリエンスをカスタマイズするのに役立ちます。今 現在、ほとんどの企業は、サービスを使い始める前に、24時間365日利用可能なチャットボットを導入しています。たとえば、エアアジアのエヴァ。これらのボットはインテリジェントな回答を提供するため、ボットと話していることに気付かないこともあります。 自動データ視覚化: これまで、企業や個人が大量のデータを生成していることがわかりました。 Google、Twitter、Facebook などの企業を例に挙げてみましょう。毎日どれくらいのデータが生成されるのでしょうか?このデータを活用して重要な関係を視覚化することで、企業は会社と顧客の両方に利益をもたらすより良い意思決定を行うことができます。 AutoViz などのユーザーフレンドリーな自動データ視覚化プラットフォームの助けを借りて、企業はプロセスの生産性を高めることができる豊富な新しい洞察を得ることができます。 ビジネス インテリジェンス: 機械学習機能をビッグ データ分析と組み合わせると、企業はビジネスの成長と利益の増加につながる問題の解決策を見つけることができます。 小売業から金融サービス、医療などに至るまで、機械学習はビジネス運営を促進する最も効果的なテクノロジーの 1 つとして浮上しています。 機械学習に最適な言語は何ですか? 機械学習に使用できる言語は数多くありますが、私としては、機械学習アプリケーションに最適なプログラミング言語は Python だと考えています。これは、次のセクションで説明するさまざまな利点によるものです。機械学習アプリケーションに使用できる他のプログラミング言語は、R、C++、JavaScript、Java、C#、Julia、Shell、TypeScript、Scala です。 R は機械学習を始めるのに非常に適した言語でもあります。 Python は、他のプログラミング言語に比べて読みやすく、複雑さが比較的少ないことで知られています。機械学習アプリケーションには、微積分や線形代数などの複雑な概念が含まれており、これらの実装には多大な労力と時間がかかります。 Python は、機械学習エンジニアが迅速な実装を通じてアイデアを検証できるようにすることで、負担を軽減します。言語の基本を理解するには、Python チュートリアルを参照してください。機械学習に Python を使用するもう 1 つの利点は、事前に構築されたライブラリです。以下のように、アプリケーションの種類ごとに異なるパッケージがあります。
Python は、オブジェクト指向プログラミングとスクリプトのどちらかを選択できる柔軟性を提供します。コードを再コンパイルする必要もありません。開発者は変更を実装し、その結果をすぐに確認できます。 Python を他の言語と組み合わせて使用することで、必要な機能と結果を実現できます。 Python は、Windows、MacOS、Linux、Unix など、あらゆるプラットフォームで実行できる汎用プログラミング言語です。あるプラットフォームから別のプラットフォームに移行する場合、コードに若干の修正と変更を加える必要があり、新しいプラットフォームで使用できるようになります。 機械学習の問題を解決するために Python を使用する利点を以下にまとめます。 機械学習の種類 機械学習は、大きく分けて 3 つのカテゴリに分けられます。
教師あり学習とは何ですか? 簡単な例から始めましょう。子供に犬と猫の区別を教えているとします。あなたは何をしますか? 犬を見せて「これは犬です」と言うことができますし、猫に出会ったら猫であることを指摘することができます。子供に猫と犬をたくさん見せれば、おそらくそれらの区別がつくようになるでしょう。よく訓練されていれば、今まで見たことのないさまざまな犬種を認識できるかもしれません。 繰り返しになりますが、教師あり学習では、変数のセットが 2 つあります。 1 つはターゲット変数、またはラベル (予測する変数) と特徴 (ターゲット変数を予測するのに役立つ変数) と呼ばれます。 プログラム (モデル) の特徴とそれらの特徴に関連付けられたラベルを表示すると、プログラムはデータ内の根本的なパターンを見つけることができます。このデータセットの例を見てみましょう。ここでは、家の大きさに基づいて家の価格を予測します。ターゲット変数としての価格は、特徴としてのサイズに依存します。
実際のデータセットでは、サイズ、場所、階数など、さらに多くの行と複数の特徴が含まれます。 したがって、教師あり学習モデルには、入力変数 (x) のセットと 1 つの出力変数 (y) があると言えます。アルゴリズムは、入力変数と出力変数間のマッピング関数を識別します。関係は y = f(x) です。 学習は、出力がすでにわかっていて、アルゴリズムが毎回修正されて結果が最適化されるという意味で監視または監督されます。アルゴリズムはデータセット上でトレーニングされ、許容可能なレベルのパフォーマンスが達成されるまで変更されます。 教師あり学習の問題は次のように分類できます。 回帰問題 - これは将来の値を予測するために使用され、モデルは履歴データを使用してトレーニングされます。たとえば、住宅の将来の価格を予測するなどです。 分類の問題 - さまざまなラベルが、特定のカテゴリ内のアイテムを認識するアルゴリズムをトレーニングします。たとえば、犬か猫(上記の例)、リンゴかオレンジ、ビールかワインか水などです。 教師なし学習とは何ですか? この方法にはターゲット変数はなく、入力変数 (機能) のみがあります。アルゴリズムは独自に学習し、データ内の印象的な構造を発見します。 目標は、データ内の根本的な分布を解読し、データに関するより多くの知識を得ることです。 教師なし学習の問題は次のように分類できます。 クラスタリング: 同じ特性を持つ入力変数をまとめることを意味します。たとえば、検索履歴に基づいてユーザーをグループ化する 関連付け: ここでは、データセット間の意味のある関連付けを管理するルールを見つけます。たとえば、「X」を視聴している人は「Y」も視聴します。 強化学習とは何ですか? このアプローチでは、機械学習モデルは、アクションに対して受け取る報酬とフィードバックに基づいて一連の決定を行うようにトレーニングされます。機械は複雑で不確実な状況で目標を達成する方法を学習し、学習プロセス中に目標を達成するたびに報酬を得ます。 強化学習は、答えが得られない点で教師あり学習とは異なり、強化エージェントがタスクを実行する手順を決定します。トレーニング データセットがない場合、マシンは独自の経験から学習します。 機械学習アルゴリズム これはおそらく、機械学習の過程の中で最も時間がかかり、難しいプロセスです。機械学習には多くのアルゴリズムがありますが、始めるためにそれらすべてを理解する必要はありません。しかし、機械学習の実践を始めたら、次のような最も人気のあるアルゴリズムを学び始めることをお勧めします。
ここでは、機械学習における最も単純なアルゴリズムの 1 つである K 最近傍アルゴリズム (教師あり学習アルゴリズム) について簡単に説明し、回帰と分類にどのように使用できるかを示します。実装セクションでは線形回帰とロジスティック回帰を実装し、その結果を KNN (K 近傍法) アルゴリズムと比較するので、これらを確認することを強くお勧めします。 通常、回帰問題と分類問題には別々のアルゴリズムがあることに注意してください。しかし、アルゴリズムを修正することで、以下に示すように分類と回帰の両方に使用することができます。 K近傍アルゴリズム KNN は怠惰な学習者のグループに属します。積極的学習者 (ロジスティック回帰、SVM、ニューラル ネットワークなど) とは対照的に、怠惰な学習者はトレーニング データをメモリに保存するだけです。トレーニング フェーズでは、KNN はデータを整理し (インデックスを構築するプロセス)、推論フェーズで最も近い近傍を効率的に見つけられるようにします。そうしないと、推論中にすべての新しいケースをデータセット全体と比較する必要があり、非効率的になります。 では、熱心な学習者と怠惰な学習者にとって、トレーニング フェーズとは何か疑問に思っている場合は、トレーニング フェーズはアルゴリズムが与えられたデータから学習する時間であることを思い出してください。たとえば、上記のリンク先の線形回帰アルゴリズムを実行した場合、トレーニング フェーズ中にアルゴリズムは最適な直線を見つけようとします。このプロセスには大量の計算が含まれるため、時間がかかります。このタイプのアルゴリズムは、積極的学習者として知られています。一方、KNN のような遅延学習者は多くの計算を必要としないため、トレーニングが速くなります。 分類問題のためのK-NN それでは、分類に K-NN を使用する方法を見てみましょう。これは、身長と体重 (特徴) に基づいて、人が男性か女性か (ラベル) を予測しようとする仮想データセットです。
それでは、これらの点をプロットしてみましょう。 ここで、新しいポイントの高さが 190 cm、重さが 100 Kg であると分類します。 K-NN ではこれを次のように分類します。
それでは、このアルゴリズムを独自のデータセットに適用してみましょう。まず、新しいデータ ポイントをプロットしてみましょう。 ここで、k = 3 とします。つまり、新しい点に最も近い 3 つの点が表示されます。 したがって、男性として分類されます。 ここで、k = 5 の値を取って何が起こるか見てみましょう。 ご覧のとおり、新しいデータ ポイントに最も近い 4 つのポイントは男性で、女性は 1 つだけなので、多数派として再び「男性」に分類します。分類するときは、K の値は常に奇数として選択する必要があります。 回帰問題のためのK-NN 分類に K-NN を使用する方法を見てきました。それでは、回帰分析に使用するためにどのような変更が行われたかを見てみましょう。アルゴリズムはほぼ同じですが、違いが 1 つあります。分類では、最も近いポイントの大部分をチェックします。ここでは、最も近いすべてのポイントの平均を取得し、それを予測値として使用します。もう一度同じ例を見てみましょう。ただし、ここでは身長(特徴)に基づいて人の体重(ラベル)を予測する必要があります。
これで、高さ 160cm の新しいデータ ポイントができました。K 値をそれぞれ 1、2、4 に設定して、その重量を予測します。 K = 1 の場合: データ内で 160cm に最も近いポイントは 165cm で、その重量は 50 なので、予測される重量自体は 50 であると結論付けられます。 K = 2 の場合: 最も近い 2 つのポイントは 165 と 145 で、重みはそれぞれ 50 と 70 になります。平均をとると、予測される重量は (50 + 70) / 2 = 60 となります。 K = 4 の場合: 同じプロセスを繰り返し、今度は最も近い 4 つのポイントを取得するので、予測の重みは 70.6 になります。 これは本当に簡単で、機械学習には特別なことは何もなく、単なる基本的な数学だと思うかもしれません。ただし、これは最も単純なアルゴリズムであることを覚えておいてください。先に進むと、より複雑なアルゴリズムが表示されます。 機械学習のステップ 機械学習は、データにアルゴリズムを適用して予測を得るだけのものだと思っていましたが、それほど単純ではありません。機械学習には、あらゆるプロジェクトに必要なステップがいくつかあります。 1.データの収集:これはおそらく最も重要で時間のかかるプロセスです。このステップでは、問題の解決に役立つデータを収集する必要があります。たとえば、住宅の価格を予測したい場合、過去の住宅販売に関するすべての情報を含み、表形式の構造を形成する適切なデータセットが必要です。実装セクションでも同様の問題に対処します。 2.データを準備する:データを入手したら、正しい形式で処理する必要があります。前処理には、データのクリーニングなどのさまざまな手順が含まれます。たとえば、データセットに null 値や外れ値 (数値ではなく文字列など) が含まれている場合、どのように処理しますか?これを行うには複数の方法がありますが、簡単な方法は、null 値を持つ行を削除することです。 また、データセットには、ID など、結果に影響を与えない列が含まれる場合があり、これらの列も削除します。通常、データ視覚化はグラフやチャートでデータを視覚化し、グラフを分析した後で重要な特徴を決定するために使用されます。データの前処理は大きなトピックです。 3.モデルを選択する:これで、データを機械学習アルゴリズムに取り込む準備が整いました。モデルとは何でしょうか?多くの場合、「機械学習アルゴリズム」と「機械学習モデル」という用語は同じ意味で使用されます。モデルは、データに対して実行される機械学習アルゴリズムの出力です。 簡単に言えば、すべてのデータにアルゴリズムを実装すると、予測を行うために必要なすべてのルール、数値、およびその他のアルゴリズム固有のデータ構造を含む出力が得られます。たとえば、データに対して線形回帰を実行すると、最もよく適合する直線の方程式が得られ、これをモデルと呼びます。次のステップは通常、ハイパーパラメータを調整せずにデフォルトのパラメータを選択する場合に、モデルをトレーニングすることです。 4.ハイパーパラメータの調整: ハイパーパラメータは、機械学習モデルの全体的な動作を制御するため、非常に重要です。最終的な目標は、最良の結果をもたらすハイパーパラメータの最適な組み合わせを見つけることです。しかし、これらのハイパーパラメータとは何でしょうか? K-NN アルゴリズムの変数 K を思い出してください。 K に異なる値を設定すると、異なる結果が得られます。K の最適値は事前に定義されておらず、データセットごとに異なります。 K の最適な値を知る方法はありませんが、さまざまな値を試して、どれが最良の結果をもたらすかを確認することはできます。ここで、K はハイパーパラメータです。各アルゴリズムには独自のハイパーパラメータがあり、最良の結果を得るにはその値を調整する必要があります。 5. 評価:モデルのパフォーマンスがどの程度優れているかを知るにはどうしたらよいのか、また、モデルを何らかのデータでテストするより良い方法はあるのだろうかと疑問に思うかもしれません。このデータはテスト データと呼ばれ、アルゴリズムをトレーニングしたデータ (トレーニング データ) のサブセットにすることはできません。 モデルをトレーニングする目的は、トレーニング データセット内のすべての値を学習させることではなく、データ内の根本的なパターンを識別し、それを使用して、これまで見たことのないデータについて予測を行うことです。 K分割交差検証など、さまざまな評価方法があります。このステップについては次のセクションで詳しく説明します。 6.予測:モデルがテスト セットでも良好なパフォーマンスを示したので、実際の環境で使用して、実際のデータでも良好なパフォーマンスを発揮することを期待できます。 機械学習の利点 1. 傾向やパターンを簡単に特定 機械学習は大量のデータを調べて、人間には見えない特定の傾向やパターンを見つけることができます。たとえば、Amazon や Flipkart などの電子商取引サイトでは、ユーザーの閲覧行動や購入履歴を理解して、適切な製品、お得な情報、リマインダーを選択できるように支援できます。その結果を使用して関連性の高い広告を表示します。 2. 継続的な改善 私たちは継続的に新しいデータを生成し、それを機械学習モデルにフィードすることで、時間の経過とともにパフォーマンスと精度をアップグレードして改善するのに役立ちます。精度と効率を向上させ続けることで、経験を積んでいくようなものと言えるでしょう。これにより、より良い意思決定が可能になります。 3. 多次元・多変量データの処理 機械学習アルゴリズムは、多次元および多種類のデータの処理に優れており、動的または不確実な環境でもそれを実行できます。 4. 幅広い用途 電子小売業者や医療提供者であっても、機械学習を活用できます。該当する場合は、適切な顧客をターゲットにしながら、よりパーソナルなエクスペリエンスを顧客に提供できるようになります。 機械学習の未来 機械学習は、大手多国籍企業であろうとスタートアップ企業であろうと、あらゆる企業にとって競争上の優位性となり得ます。現在手作業で行われている作業は、明日は機械で行われるようになるでしょう。香港の企業ハンソン・ロボティクスが開発したヒューマノイドロボット、無人運転車ソフィアなどのプロジェクトにより、私たちはすでに未来を垣間見始めています。機械学習革命は今後も長く続くでしょうし、機械学習の未来も同様です。 |
<<: WeChatグループに広告を投稿する人が常にいるのでしょうか? Pythonを使って自動ロボットを作成し、彼を排除する
「台北市信義路バスレーン自動運転バスイノベーション実験プロジェクト」は台北市で長らくテストされており...
1. 論文情報2. はじめにこの論文では、自動運転、ロボット工学、監視などのアプリケーションに不可...
機械学習は私たちの世界を変える素晴らしいツールです。機械学習(特にディープラーニング)が従来の方法よ...
過去 10 年間で、5G、ビッグデータ、クラウド コンピューティングなどの新興テクノロジーの登場によ...
Fractal Analytics の共同創設者 Ram Prasad 氏は、AI が問題領域の特定...
シティバンクは、人工知能とデータサイエンスに基づいた実用的な分析システムをどのように構築したのでしょ...
人は直感に反する動画(ユーモラスで独創的で視覚的に魅力的な動画)から容易に喜びを得ることができます。...
翻訳者 | 李睿レビュー | Chonglou制作:51CTO テクノロジースタック(WeChat ...
ビッグデータとは、さまざまな種類のデータから貴重な情報を迅速に取得する能力を指します。これを理解する...
ネイチャーの公式サイトのトップページには、世界に衝撃を与えた最新の考古学的発見が掲載された。 200...
データ爆発の時代では、データの収集だけでは不十分です。ビジネスを運営し、成長させるための洞察を得るに...