読者です 読者をやめる 読者になる 読者になる

Transduction

機械学習 哲学

人間の思考はざっくりと分けて演繹的(deductive)思考と、帰納的(inductive)思考がある、というのは古くから言われてきたことで、僕もこのブログで両方についてちょっとずつ触れてきたつもりです。例えば論理的思考みたいのは明らかに演繹的なもので、機械学習というのは基本的には帰納的な考えです。しかし、世の中には”transductive"な思考というのもあるらしい?ので、それについて今回は簡単に紹介してみたいと思います。

 

まず、帰納的な思考について復習しておきましょう。そのためにこんな例を考えてみます。今、手元に100個のりんごがあります。このりんごは自由に使っていいりんご(トレーニングセット)と呼びます。その他に、10個のりんごがあって、これらをテストセットと呼びます。問題は、トレーニングセットを自由に使って、テストセットのそれぞれのりんごに種があるか・ないかを予測することです。

機械学習的な考えで言えば、100個のりんごの「特徴(色、形、サイズなど)」と「種のあり・なし」を調べて、どんな特徴があれば種があるのか・ないのかを判別するための一般的なルールを考えることになります。これによって、テストセットのりんごについてもそれらの「特徴」から「種のあり・なし」を推測できるだろう、ということになります。

 

以上が帰納的な考え方の一例です。それではtransductiveな考えとは一体どんなものでしょうか?帰納的な考え方との相違点は以下の2つです。

○相違点その1

帰納的な考え方では、トレーニングセットを使って「特徴→種のあり・なし」という一般的なルールを考える、というアプローチでした。しかし、transductionではこのような一般的なルールは考えません。

○相違点その2

帰納的な考えでは、基本的にはテストセットは全く見ずに、トレーニングセットだけを使って予測をしようとします。transductionでは、トレーニングセットとテストセットの両方を見ながら柔軟に予測をすることを考えます。

 

注:相違点その2だけを見ると、機械学習に詳しい方はtransductionは半教師付き学習のことではないか?と思われるかもしれません。実際、これらはかなり近いことをやろうとしているだろうと思います。しかし、transductionは相違点その1という観点から見ると、半教師付き学習とも異なるのではないか、と僕は思います。

 

具体的にりんごの例を使って説明してみると、transductionとはおそらく次のような考え方だと思われます。まず、トレーニングセットとテストセットのりんごを混ぜてしまって、その中で(例えば特徴をもとに)グルーピングを行います。グループに分けたら、トレーニングセットのりんごの種のあり・なしを調べて、それをもとに(例えば同じグループに種があるのとないのが混じらないように)グルーピングを調整します。そして、それぞれのグループに対して「種がある」「種がない」のいずれかの判定を下します。そして観測していないリンゴに対しては「分からない」としておくのです。

 

そうすると、やはりこれは半教師付き学習とはちょっと異なるように思います。一つは観測していないケースでは「分からない」という判定を下す、というところです(つまり個別に、観測したものしか考えない)。しかしそれ以上に、やはり相違点その1を強調しておきたいです。今述べたtransductionの方法では、最初にすべてのりんごを含めてグルーピングを行うと言いました。これはつまり、テストセットが増えたり変わったりする度に最初のグルーピングが変わるということを意味しており、その点で「特徴→種のあり・なし」のような一般的なルールを考えるつもりは一切ありません。これは極端な例かもしれませんが、デメリットとしてテストセットが変わるごとに最初の工程から全てをやり直さなければならないので、とても非効率です。しかし、逆に言えばテストセットが変わるごとに柔軟に対応することができる、というのはメリットなのかもしれません。

また、帰納法は個別なもの→一般的なルール→個別な予測を行うものですが、これはよく考えるとちょっと「ムダ」があります。たとえば有名な三段論法


ソクラテスは人間である。人間は必ず死ぬ。よってソクラテスは死ぬ。

 

では結論「ソクラテスは死ぬ」を導くために、より一般的な「人間は必ず死ぬ」という強い結論を使っています。このような論法はそういう意味でちょっとムダがあります。

Transductionのイメージはそういうムダに話を広げるのはやめよう、個別なもの→個別な予測をしよう、という主張が暗に含まれているようです。


以上がざっくりとしたtransductionに対する僕のイメージです。これは実用性よりも、人間が普段無意識に行っているreasoningのモデル化を念頭に考えられているのではないかと思うので、あまり知っておいて役立つかどうかはわかりません。また、僕も勉強不足でよくはわかっていないので、詳しい方がいらっしゃいましたら教えていただけると幸いです。

広告を非表示にする