人工知能を作成する方法

28/03/22

私たちは人工知能についてよく話しますが、主題にアプローチして独自のAIを構築しようとする人々の観点からはまだ話していません。

しかし、今日、私たちはAIを作成するために何が必要か、どのツールが有用であるか、そしてあなたの目標に向かって一歩一歩進む方法を説明しようとしている若い人たちにアプローチしています。 この記事では、ある程度の知識を当然のことと考えています。特に、AIとは何かについては説明していません。 読み続けていくうちに、いくつかの概念を更新する必要があることに気付いた場合は、「」の記事を読むことをお勧めします。新しいデジタル革命、ディープラーニング「AIの定義と説明を見つけることができるAndreaPirasによる、 機械学習 e 深層学習.

問題を特定する

奇妙に思えるかもしれませんが、AIを構築したい場合は、解決したい問題を特定する必要があります。 

人間の観点からは単純に見える問題は、AIにとって困難または複雑である可能性があり、その逆もあり得ることをすぐに指定しましょう。 AIは通常、人を遠ざける可能性のある反復的なタスクを実行するのに非常に効果的です。 たとえば、ある種の果物(梨やリンゴ)の写真や絵を集める必要があるとします。 絵を描くことができる人を雇って、描く被写体を探しに彼を送り込むことができます。 レオナルド・ダ・ヴィンチはおそらく、自分で絵を描いて、市の市場や田舎をツアーしたでしょう。 または、写真家を雇って、必要に応じて使用する写真を撮ってもらうこともできます。 また、誰かを雇ってインターネットで画像を検索し、主題に応じてXNUMXつの異なるフォルダに保存することもできます。 後者の場合、目的のために作成されたAIを使用できます。 ご覧のとおり、タスクは比較的単純ですが、使用される方法論とテクノロジーは異なります。 

同様に、異なるタイプの人工知能を使用して同じ問題を解決できる可能性があります。 したがって、問題を適切に定義し、目標を達成するための最良の方法を選択する必要があります。 最後に、問題によっては、AIを使用しても役に立たず、費用がかかる場合もありますが、後者の場合は扱いません。

データについて..。

問題が定義されたら、それを解決するのに役立つプログラム(コード)の作成に移りたくなるかもしれません(私たちは常に梨やリンゴの画像、写真、または図面を収集して分類することについて話します)。 しかし、そうではありません。まず、データについて考える必要があります。 処理しているデータの種類(構造化または非構造化)とそれらをカタログ化する方法を理解する必要があります。リンゴとナシを分割する必要がありますか、それとももっと複雑なことをする必要がありますか。異なる色? データ分析は非常に重要であり、プロジェクトのさまざまなフェーズ、特にAIのトレーニングフェーズで、実際には、作成されたタスクを実行するように教えられたときに役立ちます。

前に述べたように、データは構造化または非構造化のXNUMXつのマクロカテゴリに分類できます。

構造化データはモデルに準拠し、明確に定義された構造を持ち、順序付けられており、(人またはプログラムのいずれかによって)簡単にアクセスして使用できます。 それらは通常データベースに保存されます。 以前に紹介したリンゴとナシの例を考えると、XNUMXつの果物をそれぞれの特性(色、サイズ、形状など)に関連付けることができます。これは、それらを区別するのに役立ち、アルゴリズムのトレーニングに使用されます。 

一方、非構造化データは、ビデオ、写真、オーディオなど、処理がはるかに困難です。

アルゴリズム

扱うデータの種類を振り返った後、問題を解決するための最適なアルゴリズム、つまりAIの心臓部となるアルゴリズムについて考え始めることができます。 

アルゴリズムは、「教師あり学習」と「教師なし学習」というXNUMXつのカテゴリに分類できます。 

最初のカテゴリ(教師あり学習)には、主にアルゴリズムのトレーニングに使用されるデータを手動で分類するために、人間の介入を必要とするアルゴリズムが含まれます。 問題が受信メールのチェックと特定のフォルダに送信されるスパムメールの選択にある場合、ユーザーが正当またはスパムとして分類した非常に多くのメッセージを例として使用して、このカテゴリのアルゴリズムを使用する可能性があります。 これらの手法の中には、ニューラルネットワーク、単純ベイズ、線形回帰、ロジスティック回帰、サポートベクターマシン(SVM)、k最近傍法、ランダムフォレストなどがあります。

XNUMX番目のカテゴリ(教師なし学習)には、データを分類するために人間の介入を必要としないアルゴリズムが含まれ、クラスタリング、関連付け、次元削減のXNUMXつのサブカテゴリがあります。 また、例として、問題が企業ネットワーク内の潜在的に悪意のあるアクティビティの特定にある場合、クラスタリングアルゴリズムを使用して、通常のアクティビティとは大きく異なるように見える一連のアクティビティを特定します。 

AIをトレーニングする

次のステップは、タスクを実行するためのアルゴリズムをトレーニングすることです。 梨とリンゴの画像の分割の簡単な最初の例に戻るには、80つの果物を特定の精度で認識するようにアルゴリズムをトレーニングする必要があります。 精度は私たち次第です。それは私たちのビジネス目標に基づいて決定しなければならないことです。 80%の精度を重視すると判断する場合があります。つまり、アルゴリズムでは、果物の画像から梨やリンゴをXNUMX回のうちXNUMX回認識できる必要があります。 これは、別の方法でアルゴリズムエラーを管理できることを意味します(たとえば、選択した画像をチェックする人を配置することによって)、エラーがビジネスに損害を与えないこと、または引き起こされた損害がサポートする必要のある費用よりも少ないことを意味します選択プロセスを改善するため。

ただし、トレーニングフェーズで必要な精度が達成されない場合は、一歩下がって別のタイプのアルゴリズムを選択する必要があります。 ただし、アルゴリズムを変更する前に、(構成パラメーターを介して)構成を確認し、トレーニングを実行するために選択したデータセットが正しいかどうかを確認することをお勧めします。 リンゴとリンゴを選択する通常の例に戻ると、トレーニングに使用された画像の中で、誤って赤い色の梨とリンゴの画像のみを使用した場合、AIが他の色の梨とリンゴを認識しない可能性があります、したがって、必要な精度を達成できません。 この場合、必要な精度に達するまで、さまざまな色の果物を含むようにデータセットを変更するだけで十分です。

プログラミング言語とプラットフォーム

次のステップは、使用するプログラミング言語を選択することです。 選択は、プログラミングの知識によって異なります。

使用できる言語はたくさんありますが、コードの記述を簡素化するすぐに使用できるライブラリがすでに多数あるため、最も一般的なのはPythonとRです。 最後に、AIを構築できるプラットフォームを選択する必要があります。 プロジェクトの実現に役立つさまざまなプラットフォームがあります。たとえば、TensorFlowは、何も費やさずにテストを実行できるオープンソースプラットフォームです。Numpy、Keras、Pandas、scikit-learn、Matplotlib、Seabornなどです。 、パノラマは本当に広いです。

残っているのは試してみることだけです...

ちなみに、私たちのAIは、受信したデータを継続的にフィードしていることを忘れました。 それらを追跡して使用します。 このようにして、おそらく今後数か月以内に市場に出回るリンゴの品質と種類について、予測を行うように教えることができます。 しかし、それは別の問題です!

アレッサンドロルゴロ

(私にアドバイスし、記事を改善するのを手伝ってくれたSICYNTのすべての友人に感謝します)

もっと知ることができます。

新しいデジタル革命、ディープラーニング-オンライン防衛

今日、独自のAIシステムを構築するためのステップバイステップの方法| upGradブログ

構造化データとは何ですか? -GeeksforGeeks

教師あり学習とは何ですか? | IBM

知っておくべき人工知能アルゴリズムの種類[完全ガイド]| upGradブログ

サイバーのための教師なし学習(hmgstrategy.com)