ブログトップ 記事一覧 ログイン 無料ブログ開設

翡翠はコンピュータに卵を生むか

2006-03-10

2回目のゼミ

前回やったBoltzmann分布の導出は、理想気体における位置エネルギーが気体密度に与える影響を定式化したものだった。

これはエネルギーといっても位置エネルギーに限った説明しかしていないので、もっと一般的な証明が必要だと言われた。

なので今回はエントロピー最大の原理から、ある制約条件*1の下でエントロピー*2を最大化させる確率分布は何かということを一般的に求めようとした。

総エネルギーが不変(熱平衡状態)であることを制約条件にすると、マクスウェル分布が導けるらしい。

エントロピーを最大化する確率分布を調べるときにエントロピーの式

¥large H(X)=-¥sum_{x¥in{¥bf X}}P(x)log P(x)

の極大を調べるんだけど、そのときにLagrangeの未定乗数法というテクニックを使うらしくてそこでつまづいた。

そこから先の導出を14日にやる予定。

*1:前回の証明では制約条件は重力場から与えられる位置エネルギーだった。

*2:情報理論のエントロピー。つまり情報量の期待値。エントロピーが大きいほど乱雑さ(不確定さ)が増す。先験的知識が与えられると乱雑さ(不確定さ)が減るために、エントロピーは減る。逆に言えば、先験的知識が与えられていないときは常にエントロピーを最大にする確率分布が最も『公正』『妥当』であるといえる。

2006-03-07

はじめてのゼミ

強化学習で行動選択の確率分布をBoltzmann分布で表わしたりするのだけれど、そのBoltzmann分布について元々の意味、つまり統計物理における理想気体のポテンシャルエネルギーと分布の関係式について調べて発表した。

http://www.h5.dion.ne.jp/~antibody/boltzmann.htm

の内容とほとんど一緒のことをホワイトボードで説明。その分布をなぜ強化学習の行動選択で用いるのか、という本質的なところはよく分からない (そもそもちゃんとした理屈があるのだろうか。たしかにうまくいくのだが) 。

次の発表のための資料をもらって帰ってきた。エントロピー最大則とマクスウェル分布について…?

エントロピーって情報理論のと熱力学のでどう違うんだろう。

2006-01-08

例の会議室予約システムとかいう演習

帰省する前にデータベースへSQLを投げるクラスをサーバにうpしておいた.

が,

信じ難いことに,12日には完成していて,プレゼンしなくちゃいけないというのに,誰も何もやってきてない…orz それ以前に連絡がない.

データベースへのアクセス部は出来たのでセッション管理部をいまから作ろうかな. サーブレットなんかにしたせいで脱落者を出したのか… しかしこれはどう考えてもサーブレット向きの問題だと思う.

謎のNullPointerExceptionは単にTomcatからみたクラスパスにJDBCのモジュールが入っていなかったためだった. サーブレットをフロントエンドに使うときはSystem.out.println()でエラーメッセージを吐いてみたところで見えないため,エラーの出所がよくわからんということになる.

2005-12-16

演習で

Javaを使った開発をしなくちゃいけないんだけど、まだJDKをインストールしてないという破滅的状況。なんかJDBCでMySQLにアクセスしつつTomcatでサーブレットにする模様。です。

FreeBSDにインストールするときはバイナリが無いので、ライセンシーの関係で登録が必要なソースコードをダウンロードをしてきてコンパイルすることになる。

一応JKD1.4はFreeBSDネイティブのportsがあるらしく、ソースコードだけ手動で落としてきてあとは自動でやって貰う。

それで今コンパイル中なんだけど なぜかportsはrpmを落とし始めた

ええー

2005-12-15

自然言語処理の難しさ

っていう題でA4一枚のレポートを書かされたよ。なかなかいいこと書いたと思ったので先生に送信する前に晒してみる。

 翻訳ソフトなど機械による自然な解釈が必要になる場面で重要になるのが、語義の曖昧性の解決である。

・彼はその仕事をやった。 (ある動作をする)

・その日はジャズをやった。 (演奏/上映する)

・プレゼントとして時計をやった。 (譲渡する)

・机の上の本を向こうへやった。 (どかす)

・心配なので人をやった。 (遣いを出す)

・目を向こうへやった。 (視線を投げる)

 「やった」というだけでもこれだけの意味があり、「やった」という文字列を見ただけではどの意味になるのかは曖昧である。そこで近隣の単語や係り受けを見て、その共起確率により品詞や語義を決める、というのが現在の自然言語処理の手法であるが、これだけでは人間のような自然な解釈をすることはできない。それは今日の翻訳ソフトなどが身をもって示しているところである。

 それを解決するための方法の一つが上位知識の導入であり、それはより上位のレベルから下位のレベルの認識を補正する働きをする。例えば形態素解析と同時に構文解析を行い、構文上の意味から形態素解析の結果を補正するといったことが可能になりつつある。さらに、構文解析をより正確なものにするためにはさらにもっと上位の補正機構が必要になる。

 人間がコンピュータよりも圧倒的に優れている点は逆問題を解決することにある。夜、庭の暗がりに白いものを見たとき、それが雪に見えるのは、天気予報を見ていたからかもしれないし、やけに肌寒いのを感じたとったからかもしれない。人間はたとえ視覚が不完全な状況であっても、周囲の状況から認識を再構成できる。

 同様に、人間であれば新聞記事に誤表記を見つけても、前後の文章からのつながりや、常識的な推論によってそれを補正することができる。翻訳機械がこのような補正をするためにはどのような機能が必要になるだろうか。それは文脈の関連性を理解すること、常識的知識ベースによる推論を行うこと、抽象的な概念を内部表現として記述できること、などである。

 文章において、比喩や洒落を理解し、アナロジーによる対比構造などを理解することは時として人間にすら難しい作業であり、これを実現するためには非常に広範囲の知識と推論が必要になる。そういったものを持たなければ、例えば翻訳ソフトがとんちんかんな変換をして、それが文法的に何の問題も持たなかったとして、それを補正することは出来ないのである。しかしそこまでいくと自然言語処理の学術領域を逸脱して人工知能の問題になってしまう。

 つまり自然言語処理でも人工知能でも、その本質的な難しさというのは、人間の心的機能というものがそれ自身単独で機能しているわけではなく、常に複合的に働いていることによるのだと思う。先の雪の例えで言いたかったのはそれである。完全な自然言語処理を行うためには、学習、推論、知識表現、そして人間に近い感覚デバイスを備えていること(!)などが必要だろう。そして当然のことながらそれは非常に難しい。

 要するに自然言語処理が難しいのは、それが単に言葉だけの問題ではないから、ではないだろうか。

後半の議論は最近読んだこの本の影響がかなりある。