テクノロジーが急速に進歩するにつれ、人工知能プログラミングはますます成熟しつつあります。その開発は、人間がよりインテリジェントな機械を作るのに役立つのでしょうか?
プログラム合成とは、仕様に基づいてプログラムを自動的に生成する概念を指します。プログラムの検証とは異なります。プログラム検証は、正式な証明に基づいて、プログラムが正式な仕様に従って動作するかどうかを検証します。 1957 年、コーネル大学で開催された記号論理学会の夏季会議で、アロンゾ・チャーチは数学的要件に基づいたプログラムを合成しようと試みました。 1960 年代に、 AI 研究者はプログラム合成の概念を詳しく説明し、それを一般的な AI 研究に適用しました。 近年、ディープラーニングにより人工知能がタスクを達成する方法が変革しました。この進歩により、研究者たちは人間が得意とするタスクを人工知能に教えようと試みるようになった。重要な分野の一つは、人間が得意とする種類のタスクを人工知能が学習できるようにするメタ学習システムを作成することです。ニューラル プログラム合成とロボット工学に関する研究では、当初、プログラム合成を使用してロボットにタスクを正確に実行する方法を教えることができることが実証されました。 プログラム合成は、コンピュータプログラミングの実装を容易にするために最もよく使用されます。 AutoProf、FlashFill、Storyboard プログラミング ツールなどのアプリケーションを使用すると、学生はコードを記述せずに特定の概念を直接操作することで、より直感的な方法でプログラミングできます。 AI 研究者の François Jolet 氏は、論文「知能テスト」の中で、知能テストの問題をモデルにした ARC タスクを解決するための手法としてプログラム合成を紹介しています。 ジョレット氏は、自身の論文についてザ・ヴァージ誌のインタビューで次のように語った。「重要な点は、タスクが、これまで知られていなかった多数の問題にわたって新しいスキルを習得するメタタスクでない限り、どんなタスクでも高いスキルを習得することは知性の兆候ではないということです。まさにそれが、私が知性の基準と考えているものです。」 基本的に、システムの知能は、Chollet 氏が言うように、次の方法でテストする必要があります。「これは、システムがこれまで知らなかった新しいタスクのみを使用し、タスクの開始時にシステムの事前知識を測定し、システムのサンプリング効率 (つまり、タスクを実行するために学習するために必要なデータの量) を測定することを意味します。特定のスキル レベルに到達するのに必要な情報 (事前知識と経験) が少ないほど、そのシステムはよりインテリジェントです。今日の AI システムはまったくインテリジェントではありません。」 彼は後に、ARC タスクを Kaggle の抽象および推論問題チャレンジで解決すべき問題として投稿しました。この問題を解決するには、プログラミング合成の力を活用して、これまで知られていなかった ARC タスクを学習する必要があります。 プログラミング合成問題の分解解決不可能と思われる問題はすべて、まず小さな問題に分解することができます。合成プログラミングを学んだことがない場合は、作業を開始する前に、問題が何であるか、そしてそれをどのように解決するかを理解してください。 1. プログラムスペースの問題 すべてのプログラミング合成問題には、最終的にはプログラム空間全体の検索が含まれます。検索方法は有効である必要があります。ツリー アルゴリズムを使用する場合、このツリーの枝を切り落とす方法が必ずあると考えてください。そうしないと、ツリーが成長するにつれて、無限に成長する可能性があります。 2. ユーザーの意図の問題 ユーザーの意図をテストするロジックの間には、曖昧な領域が存在することがよくあります。ユーザーが環境とやりとりすると、発見が起こります。ユーザーが参加すると、新しいデータによって、ユーザーの目にはまったく新しい問題が映るようになるかもしれません。 Kaggle チャレンジを成功裏に解決するには、必然的にこれら 2 つの問題を解決する必要があります。 手続き型合成のためのユーティリティPython では、Z3 はプログラム合成用の Python パッケージです。こちらはAdrian SampsonによるZ3の優れたチュートリアルです。 彼の記事の例は次のとおりです。 次のように汎用ソルバーを構築します。 Adrian Sampson のブログからのコード 次に、実行する数式を定義します。 Adrian Sampson のブログからのコード 実行: print(solve(formula)) を実行して、任意の問題を解決します。詳細と例については彼のチュートリアルをお読みください。 手続き型合成についてさらに詳しく知りたいですか?以下に、手続き型合成に関連する学習リソースをいくつか示します。 1. プログラム合成のためのディープラーニング https://sunblaze-ucb.github.io/program-synthesis/index.html 2. ディープコーダー: プログラムの書き方を学ぶ https://openreview.net/pdf?id=ByldLrqlx 3. ディープラーニングプログラム合成Microsoft Research https://www.microsoft.com/en-us/research/blog/deep-learning-program-synthesis/ François Jolet が提案した Kaggle チャレンジの解決に取り組んでいる場合、この記事が役立ちます。 「いかなる問題も、それを生み出したのと同じレベルの意識では解決できない。」 - アルバート・アインシュタイン あらゆる「不可能」な課題は、問題解決を決してあきらめなかった人々によって一歩一歩解決されました。 さあ、君は最高だよ! |
ビジネスに AI を導入するには、テクノロジーとスキルだけでは不十分です。いくつかの戦略を導入するこ...
[[431999]]新しい世代が古い世代に取って代わると、古い世代はどこへ行くのでしょうか。今日、2...
数日前、人工知能の分野でほとんどブラックユーモアとも言えるニュースが発表された。Google のエン...
ビッグデータと人工知能は、企業が新しい方法で顧客体験を向上させるのに役立ちます。 AIとビッグデータ...
今年は、ChatGPTやGPT-4に代表される大規模言語モデル(LLM)が急速に発展しました。それに...
[[389855]]ビジネスに関連するすべてのリスクを排除できると主張しても、多くの人はそれを信じま...
[51CTO.com からのオリジナル記事] インテリジェンス + の時代では、データは企業の中核資...
近年、人口ボーナスの継続的な減少に伴い、無人作業の需要がますます顕著になり、ロボット産業は急速な発展...
9月17日、上海の西外灘で2018年世界人工知能大会が正式に開幕した。ジャック・マー、ポニー・マー...
COVID-19 パンデミックが発生する前は、ビジネスリーダーたちは、ビジネス運営の最適化、収益性の...