人工知能に適したプログラミング言語はどれですか? ——人工知能におけるPythonの役割

人工知能に適したプログラミング言語はどれですか? ——人工知能におけるPythonの役割

Google の AI が囲碁の名人に勝利したことは、人工知能の突然かつ急速な進歩を測る手段であり、また、これらの技術がどのように発展してきたか、そして将来どのように発展する可能性があるかを明らかにするものでもある。

[[183473]]

人工知能は、現在独自のツールセットの開発が進められている未来のテクノロジーです。過去数年間で目覚ましい進歩が見られました。自動運転車は事故なく30万マイル以上走行し、3つの州で合法化されるという節目を迎えました。IBM Watsonはクイズ番組「Jeopardy」の優勝者2人に勝利しました。また、統計学習技術は、消費者の関心から何兆枚もの画像に至るまで、複雑なデータセットのパターンを認識するために使用されています。こうした発展により、科学者や専門家の AI への関心は必然的に高まり、開発者も AI アプリケーション作成の本質を理解するようになりました。これらを開発する際に最初に注意すべき点は次のとおりです。

人工知能に適したプログラミング言語はどれですか?

あなたが熟達しているプログラミング言語はすべて、人工知能の開発言語として使用できます。

人工知能プログラムは、ほぼすべてのプログラミング言語で記述できますが、最も一般的なのは Lisp、Prolog、C/C++、最近では Java、そしてさらに最近では Python です。

リスプ

LISP のような高級言語が AI で好まれるのは、大学での長年の研究の結果、高速実行よりも高速プロトタイピングが選択されたためです。ガベージ コレクション、動的型付け、データ関数、統一された構文、インタラクティブな環境、拡張性は、LIST が人工知能プログラミングに非常に適した機能の一部です。

プロローグ

この言語は、LISP の高レベルな利点と従来の利点を効果的に組み合わせており、AI に非常に役立ちます。その強みは「論理ベースの問題」を解くことにあります。 Prolog は論理関連の問題に対する解決策を提供します。またはその解決策には簡潔な論理的特徴があります。主な欠点は(私見ですが)習得が難しいことです。

C++ の

チーターと同様に、C/C++ は主に高い実行速度が必要な場合に使用されます。これは主に単純なプログラムに使用され、ニューラル ネットワークなどの統計的人工知能が一般的な例です。バックプロパゲーションでは数ページの C/C++ コードしか使用しませんが、速度が求められ、プログラマーが速度を少しだけ向上させるだけでも効果があります。

ジャバ

新参者である Java は、LISP のいくつかのアイデア、特にガベージ コレクションを採用しています。移植性が高いため、あらゆるプログラムでの使用に適しており、組み込み型のセットも備えています。 Java は LISP や Prolog ほど高度ではなく、C ほど高速でもありませんが、移植性が必要な場合には最適な選択肢です。

パイソン

Python は LISP と JAVA でコンパイルされた言語です。 Norvig 氏の記事にある Lips と Python の比較によれば、2 つの言語はわずかな違いがあるだけで、非常によく似ています。 Java グラフィカル ユーザー インターフェイスへのアクセスを提供する JThon もあります。これが、Peter Norvig 氏が人工知能に関する本のプログラムを翻訳するために JPyhton を使用することを選択した理由です。 JPython を使用すると、ポータブル GUI デモやポータブル http/ftp/html ライブラリを使用できます。そのため、人工知能言語として非常に適しています。

AIに他のプログラミング言語よりもPythonを使用する利点

高品質のドキュメント

プラットフォームに依存せず、現在のすべての*nixバージョンで使用可能

他のオブジェクト指向プログラミング言語よりも習得が簡単で速い

Python には、Python Imaging Libary、VTK、Maya 3D Visualization Toolkit、Numeric Python、Scientific Python など、数値および科学アプリケーションに使用できる多くの画像強化ライブラリがあります。

Python は、高速、堅牢、移植性、拡張性を考慮して設計されています。明らかに、これらは AI アプリケーションにとって非常に重要な要素です。

小さなシェル スクリプトから Web アプリケーション全体まで、科学的な目的の幅広いプログラミング タスクに役立ちます。

***、オープンソースです。同じコミュニティサポートが利用可能です。

AI向けPythonライブラリ

総合AIライブラリ

AIMA: ラッセルからノーヴィグスの「人工知能: 現代的アプローチ」までのアルゴリズムの Python 実装

pyDatalog: Python のロジック プログラミング エンジン

SimpleAI: 「人工知能: 現代的アプローチ」という書籍で説明されている人工知能アルゴリズムの Python 実装。使いやすく、十分に文書化され、テストされたライブラリを提供することに重点を置いています。

EasyAI: 2 人用 AI ゲーム用の Python エンジン (負の最大値、順列テーブル、ゲーム解決)

機械学習ライブラリ

PyBrain は、機械学習タスクに柔軟でシンプルかつ効果的なアルゴリズムを提供するモジュール式の Python 機械学習ライブラリです。また、アルゴリズムをテストおよび比較するためのさまざまな定義済み環境も提供します。

PyML は、SVM やその他のカーネル メソッドに重点を置いた、Python で記述された双方向フレームワークです。 Linux および Mac OS X をサポートしています。

scikit-learn は、科学と工学における多目的ツールとしての機械学習など、さまざまなコンテキストで再利用できるシンプルでありながら強力なソリューションを提供することを目指しています。これは、Python 科学パッケージ (numpy、scipy、matplotlib) と密接にリンクされた、古典的な機械学習アルゴリズムを統合した Python モジュールです。

MDP-Toolkit は、簡単に拡張できる Python データ処理フレームワークです。教師あり学習アルゴリズムと教師なし学習アルゴリズム、およびその他のデータ処理ユニットを収集し、これらを組み合わせてデータ処理シーケンスやより複雑なフィードフォワード ネットワーク構造を作成できます。新しいアルゴリズムの実装はシンプルで直感的です。信号処理法(主成分分析、独立成分分析、低速特徴分析)、フロー学習法(局所線形埋め込み)、集中分類、確率的方法(因子分析、RBM)、データ前処理法など、利用可能なアルゴリズムの数は着実に増加しています。

自然言語およびテキスト処理ライブラリ

NLTK は、自然言語処理とテキスト分析の研究開発のためのオープンソースの Python ライブラリ、言語データ、およびドキュメントです。 Windows、Mac OSX、Linux バージョンがあります。

場合

私たちは、人工知能とモノのインターネットを活用して従業員の行動を分析するソフトウェアを開発するための実験を行いました。このソフトウェアは、従業員の感情的および行動的な注意散漫を通じて有用なフィードバックを提供し、それによって管理と仕事の習慣を改善します。

トレーニングには、Python 機械学習ライブラリ、opencv、haarcascading の概念を使用します。さまざまな場所に設置されたワイヤレス カメラを通じて送信される幸福、怒り、悲しみ、嫌悪、疑惑、軽蔑、皮肉、驚きなどの基本的な感情を検出するために、サンプル POC が構築されました。収集されたデータはクラウド データベースに集中管理され、Android デバイスやデスクトップのボタンをクリックするだけでオフィス全体で取得できます。

開発者たちは、顔の感情の複雑さを分析し、より多くの詳細を明らかにすることに進歩を遂げています。ディープラーニングアルゴリズムと機械学習の助けを借りて、個々の従業員のパフォーマンスと適切な従業員/チームのフィードバックを分析するのに役立ちます。

結論は

Python は、この分野のほとんどの要件を実装する Python での機械学習である scikit-learn などの優れたフレームワークを提供することで、人工知能において重要な役割を果たしています。 D3.js は、JS でのデータ駆動型視覚化のための最大かつ最も使いやすいツールの 1 つです。 Processing フレームワークは、迅速なプロトタイピングが可能であるため、無視できない重要な言語となっています。 AI には多くの研究が必要なので、新しい仮説をテストするために 500 KB の Java 定型コードを必要とする必要はありません。 Python のほぼすべてのアイデアは、20 ~ 30 行のコードで簡単に実装できます (JS と LISP についても同様です)。したがって、人工知能にとって非常に有用な言語です。

<<:  マシンビジョンについて知っておくべきこと

>>:  人工知能が人間の神経を刺激し、2017年は世界的な技術革新が活発化

ブログ    
ブログ    
ブログ    

推薦する

顔認識技術の現状と今後の開発動向

顔認識は、一般的に肖像認識または顔認識とも呼ばれ、顔の特徴に基づいて人物を識別する生体認証技術です。...

中国科学院は、プログラマーがバグを見つけるのを助けるために大きなモデルを使用し、102の論文を分析し、これらの解決策をまとめた。

中国科学院は「バグ発見」に着手し、一気に N 個の解決策をまとめました。魔法の武器は大きなモデルです...

マイクロソフトの新たな注目論文:Transformer が 10 億トークンに拡大

誰もが独自の大規模モデルをアップグレードして反復し続けるにつれて、コンテキスト ウィンドウを処理する...

...

機械学習の未来はここにある:ガウス過程とニューラルネットワークは同等である

ガウス過程は以前から存在していましたが、それに対する関心が大きく再燃したのはここ 5 ~ 10 年ほ...

プログラマーはAIアルゴリズムを使用して3,000匹の新しいポケモンを生成した

「人間は見たことのないものを想像することはできない」ということわざがあります。したがって、ほとんどの...

あなたを偲んで!孫建博士が早朝に逝去されました。AIは偉大な人物を失い、Megviiは技術リーダーを失いました。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

脳に埋め込まれたAIチップはてんかん発作を予測し、2時間で充電して1週間持続する

脳にAIチップを埋め込むことで、てんかん発作をいつでも予測し、制御できるようになります。これは、我が...

デジタルホーム: IoTとAIで家電をもっとスマートに

洗濯機、照明、スピーカー、テレビ、カメラなど、日常的に使用するデバイスが、離れた場所からあなたと通信...

人工知能のゲーム理論:エージェントと人間、エージェントと環境の間のゲーム関係の予備的調査

人工知能 (AI) は、コンピューターや機械をインテリジェントに動作させる方法を研究する分野です。機...

2021年の人工知能の注目分野

[[383142]]人工知能、またはよく耳にする AI とは、人間が作った機械が示す知能を指し、コン...

...

わかりやすい! 「高校数学」勾配降下法の数学的原理を理解する

「時期尚早な最適化は諸悪の根源である。」 —ドナルド・アーヴィン・クヌース、コンピュータ科学者、数...

大規模ニューラルネットワークに関する最新の文献のレビュー:効率的な DNN のトレーニングとメモリ使用量の節約

現代のディープラーニングおよび人工知能技術の開発には、ディープニューラルネットワーク (DNN) を...

顔認識システムはすごいですね!チケット転売業者が体調を崩して入院、警戒を呼び起こす

最近、北京同仁病院の警報システムが作動し、職員は北京天壇病院で活動していたチケット転売業者が北京同仁...