AI_ML_DL’s diary

人工知能、機械学習、ディープラーニングの日記

Defining intelligence: a formal synthesis

Ⅱ.2  Defining intelligence: a formal synthesis

 

これは、F. Chollet氏のThe Measure of Intelligenceの、27ページから43ページまで続く記事である。

5月4日:今日も学習継続!

 

この節の直前に、”four core knowledge systems" が示されている。

 

<勝手に解釈>

2番目のagentnessのagentは、強化学習reinforcement learningの説明の際に初めて出くわした単語だったと思う。代理人という意味しか思い浮かばず、なぜこんな用語が使われるのか理解できなかった。今は、勝手な解釈かもしれないが、そもそも強化学習はコンピュータゲームから派生しており、ゲームの主人公を、ゲーマーの代理人と言うことで、agentと呼ぶことにしたのだろうと思っている。

ARCモデルでは、小さな模様が特定方向に移動あるいは成長し、ときには平面で反射されるような動きを想起させるものがあり、昔のゲームの画面を思い出した。

1番目の物体の概念、3番目の数の概念、4番目の幾何学的・トポロジカル的概念については、core knowledgeそのものだろうと思う。

ヒトの知能テストと同等のものを、カラーグリッドだけで表現するのは、無理があるように思う。多角形や曲線の表現力、自然数の表現力には限界があるように思う。

ディープラーニングのコアの計算は、テンソル演算であり、グリッドは、テンソルそのものである。

入力グリッドを出力グリッドに変換する簡単な演算方法を考えよう。

すなわち、入力テンソルを出力テンソルに一回の演算で変換する方法はないのか。

007bbfb7は、3x3のグリッドを、9x9のグリッドに、一様に張り付けてから、3x3のグリッドが持っているパターンに合うように変更(変換)する。

f:id:AI_ML_DL:20200505165808p:plain

ステップ1:np.tile(x, (3, 3))で、x(3x3)を9x9のグリッドに張り付け、aに代入する。

ステップ2:x(3x3)を元の分布を維持したまま拡大:b=x.repeat(3, axis=0).repeat(3, axis=1)

ステップ3:a & bにより、タイルの分布を、3x3が持っていた分布に変更する。

これを自動で行うにはどうすればよいのか。

ステップ1:タイルかどうかの判定:入力と出力のグリッドサイズが整数倍か否かの判定を行う:グリッドサイズをSin、Soutとして、mod = Sout % Sinで、modがゼロかどうか調べる

ステップ2:整数倍であれば、縦の比と横の比を求める。

ステップ3:縦と横の比が入力グリッドの縦と横の比に一致すれば、今回の例のパターンの可能性があるが、

ed98d772:3x3 ⇒ 6x6、左上コピー、左下180度回転、右上90度、右上90度左回転、右下90度右回転

d4b1c2b1:3x3 ⇒ 3nx3n、nは、色の種類の数、分割数は増えるが、模様は変わらず。

ccd554ac:nxn ⇒ n^nxn^n、2x2 ⇒ 4x4、3x3 ⇒ 9x9、4x4 ⇒ 16x16、5x5 ⇒ 25x25、ただし、trainは4までで、testのみ5となっている。

cad67732:説明が難しいので画像を張り付けた。タイルに分類しても良いのかな。こういうパターンを判定するには どうすれば良いのだろうか。グリッドサイズは4倍で単純だが、このパターンを生成するコーディング能力が、別途必要になる。

f:id:AI_ML_DL:20200504154518p:plain

c92b942c:これもタイリングの1種だが、タイリングの前に、青と緑を追加した基本的な模様を作る必要がある。この場合は、出力画像を入力画像サイズに分割し、基本構造を作ることになる。テスト入力に対して基本構造を作成するのも容易ではない。

f:id:AI_ML_DL:20200504155602p:plain

c48954c1:これもタイリングだが、張り付け方に特徴があり、その特徴を把握するプログラミングが難しそうだ。まず中心に置いて、あとは上下左右に反転すれば出力画像は得られるのだが、入力画像と出力画像の関係性を読み取るプログラムを作らないといけないのだが、どうやればいいのだろうか。

グリッドサイズが整数倍であることから、タイルタイプであることを仮定して、種々の方向に回転させたグリッドで出力画像との関係を調べることになる。

回転はnp.rot90( )、上下入れ替えは、np.flipud( )、左右入れ替えは、np.fliplr( )。

行列の結合と分割の仕方を学ぼう。

 

f:id:AI_ML_DL:20200504160526p:plain

F. Chollet氏が言われているように、手作業で条件文とか従来のプロギラミング手法を駆使して10個か20個ぐらいのパターンに対応できるだけの技術を身に着けて、そこから徐々に汎用性を考えていくという地道な作戦でいくしかないんだろうな。

今の自分の力では、とても難しいけど、numpyの配列操作を習得しながら、もう少し頑張ってみよう。

屁理屈をこねるのは横に置いといて、あと3週間、プログラミングに集中して、1つでも多く、出力グリッドを作成するプログラムを作れるようになろう。

 

 

Objectness and elementary physics: humans assume that their environment should
be parsed into “objects” characterized by principles of cohesion (objects move as
continuous, connected, bounded wholes), persistence (objects do not suddenly cease
to exist and do not suddenly materialize), and contact (objects do not act at a distance
and cannot interpenetrate).

Agentness and goal-directedness: humans assume that, while some objects in their
environment are inanimate, some other objects are “agents”, possessing intentions of
their own, acting so as to achieve goals (e.g. if we witness an object A following
another moving object B, we may infer that A is pursuing B and that B is fleeing
A), and showing efficiency in their goal-directed actions. We expect that these agents
may act contingently and reciprocally.
Natural numbers and elementary arithmetic: humans possess innate, abstract number
representations for small numbers, which can be applied to entities observed through
any sensory modality. These number representations may be added or subtracted, and
may be compared to each other, or sorted.
Elementary geometry and topology: this core knowledge system captures notions
of distance, orientation, in/out relationships for objects in our environment and for
ourselves. It underlies humans’ innate facility for orienting themselves with respect
to their surroundings and navigating 2D and 3D environments.

 

より具体的な表現は、48ページ以降に記述されている。

The Core Knowledge priors assumed by ARC are as follows:

 a. Objectness priors:
Object cohesion: Ability to parse grids into “objects” based on continuity criteria including color continuity or spatial contiguity (figure 5), ability to parse grids into zones, partitions.

Object persistence: Objects are assumed to persist despite the presence of noise (figure
6) or occlusion by other objects. In many cases (but not all) objects from the input persist
on the output grid, often in a transformed form. Common geometric transformations of
objects are covered in category 4, “basic geometry and topology priors”.

Object influence via contact: Many tasks feature physical contact between objects (e.g.
one object being translated until it is in contact with another (figure 7), or a line “growing” until it “rebounds” against another object (figure 8).

b. Goal-directedness prior:
While ARC does not feature the concept of time, many of the input/output grids can be
effectively modeled by humans as being the starting and end states of a process that involves intentionality (e.g. figure 9). As such, the goal-directedness prior may not be strictly necessary to solve ARC, but it is likely to be useful.

c. Numbers and Counting priors:
Many ARC tasks involve counting or sorting objects (e.g. sorting by size), comparing
numbers (e.g. which shape or symbol appears the most (e.g. figure 10)? The least? The
same number of times? Which is the largest object? The smallest? Which objects are the
same size?), or repeating a pattern for a fixed number of time. The notions of addition and subtraction are also featured (as they are part of the Core Knowledge number system as per [85]). All quantities featured in ARC are smaller than approximately 10.

d. Basic Geometry and Topology priors:
ARC tasks feature a range of elementary geometry and topology concepts, in particular:
• Lines, rectangular shapes (regular shapes are more likely to appear than complex
shapes).
• Symmetries (e.g. figure 11), rotations, translations.
• Shape upscaling or downscaling, elastic distortions.
• Containing / being contained / being inside or outside of a perimeter.
• Drawing lines, connecting points, orthogonal projections.
• Copying, repeating objects. 

 

Ⅱ.2.1  Intelligence as skill-acquisition efficiency

概略

It is marked by flexibility and adaptability (i.e. skill-acquisition and generalization).

Unlimited priors or experience can produce systems with little-to-no generalization power (or intelligence) that exibit high skill at any number of tasks.

General AI should be benchmarked against human intelligence and should be founded on a similar set of knowledge priors.

 

これから、intelligenceとその測定の正式な定義を確立するために必要な主要な概念の一連の定義を、 アルゴリズム情報理論のツールを用いて示す、ということのようだ。

 

central idea:

The intelligence of a system is a measure of its skill-acquisition efficiency over a scope of tasks, with respect to priors, experience, and generalization difficulty.

 

Position of the problem

We consider the interaction between a "task" and an "intelligent system". This interaction is mediated by a "skill program" (generated by the intelligent system) and a "scoring function" (part of the task)

f:id:AI_ML_DL:20200430155826p:plain

 

モデルを構築するために必要なパーツを揃えていく

 

 

f:id:AI_ML_DL:20200430125537p:plain

style=120 iteration=1

f:id:AI_ML_DL:20200430125633p:plain

style=120 iteration=20

f:id:AI_ML_DL:20200430125712p:plain

style=120 iteration=500