- 1 名前:1 [04/09/11 01:48:08]
- について教えてよ
- 281 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 22:14:05 ]
- 279だが、もう少し詳しく。
一般に、進化型計算で得られる結果は、目的の値または目的を効率よく得られたパラメータの 値の事かな? どちらにしてもアルゴリズムとは言えない。上記認識で有っているか? 有っていないなら、より詳しい説明を求む。
- 282 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 22:18:02 ]
- >>280
ニューラルネットワークのエミュレーションも手続き型の結果だからね。 その辺の混乱を、普通のロジック=ニューラルネットワークの仕組みではなく、手続き型のプログラムを意味する のつもりで書いたのだが、短文で意味を伝えるのは難しいな。
- 283 名前:デフォルトの名無しさん [2007/12/31(月) 22:45:01 ]
- >>281
278ds 進化型計算の結果は「進化した計算手法」だと思っている。 簡単な例だと、「1,2,3,4の4つの数値から四則演算を任意に行って10を作りなさい」という目的が設定された環境で 進化するエージェントは四則演算をパラメータとしてみてその組み合わせを目的に合うように最適化していく。 という感じで、その結果得られるのは「目的を満たすための手段=アルゴリズム」だと思っている。
- 284 名前:268 mailto:age [2007/12/31(月) 23:09:44 ]
- KYずに遅レス
家電で実用化されてるのは,と言うより今実用化されてるNNはパターン認識系ではなく,BPNNの補間機能を利用したソフトな制御を行うタイプ. だから分野はファジーと同じだが,一旦値が決まってしまえばファジーより簡単に(小さなコストで)実装できる. 他にはPOS,データマインニング,クレジットカードの悪用検出などで使われていると聞いている.
- 285 名前:268 mailto:sage [2007/12/31(月) 23:12:09 ]
- スマソ,上げちまった
- 286 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:29:45 ]
- 進化型計算の目標に遺伝子のアルゴリズムが有ると思う。これは、自身のアルゴリズムを
自身で書き換えて進化してきた。しかし、現在の計算機での進化型計算は、自身で自身を 書き換えるまでに達していない。既に内包しているアルゴリズムを再発見して違う形のパラ メーターとして最適化しているに過ぎない。これでは、プリグラムで定義された範囲内を超 える事は出来ない。これは、既に組み込まれた内容の範囲をパラメーターで指定している に過ぎない。新たなアルゴリズムを導き出したと言えるのだろうか? もしそれでいいのなら、コンパイラコンパイラに代表するプログラムジェネレーター総てが 進化型計算計算と大差が無い。 自身に内包するアルゴリズムを出したのでもいいなら、結果がアルゴリズムでいいだろう。 特にプログラムジェネレーターはアルゴリズムを実際に出している。 それに比べ、プログラムの動き方が変わったパラメーターが生成できたとして、 私はそれがアルゴリズムだとは言いたくない。 進化型計算が目指すものは、遺伝子と同じく自身を書き換え新たなアルゴリズムを 目つけることが必要ではないか、私はそう考えている。
- 287 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:39:57 ]
- 286、言い回しの重なりと 計算計算の2重化、申し訳ない。
よろしければ、うまく汲み取って欲しい。
- 288 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:53:57 ]
- >POS,データマインニング,クレジットカードの悪用検出などで使われていると聞いている.
これに付いての知識が無いため、評価する事が出来ない。 私が参加した元々の命題。「早い遅い どこら辺が基準」に対して。 基準とは、一般に広まった結果の最大公約数的なものが必要だと思っている。 したがって、極一部の例で速い遅いの判断は不可能であると指摘したい。
- 289 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:57:30 ]
- なんか細かい話はよくわからんが、例えばスパコンだって汎用的に使えるわけじゃないけど「速い」んだから
一般的にどうこうってのは、あんまり意味がない気がする。
- 290 名前:デフォルトの名無しさん mailto:sage [2007/12/31(月) 23:59:51 ]
- スパコンには、一般的に評価できる計算プログラムが有りますよ。
- 291 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:02:05 ]
- その評価プログラムの結果なら正当な評価なの?
- 292 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:07:16 ]
- ランキングが世界的に認められてるから正当だと思われ。
ちなみに、君のPCでも実行できたはず。
- 293 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:09:26 ]
- 意味が通じてないみたいだからいいや。お休み。
- 294 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 00:09:37 ]
- ニューラルネットは、それが間違いなく動作するのかどうかテストするのが難しいから、
市販品には採用されることはほとんどない。 しかし、最先端のロボットなどには積極的に使われているよ。
- 295 名前:デフォルトの名無しさん mailto:sage [2008/01/01(火) 08:01:00 ]
- ニューラルネットって効率悪いよな
- 296 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:13:36 ]
- >間違いなく動作するのかどうかテストするのが難しいから
これは目的による.したがって, >市販品には採用されることはほとんどない これは誤り.学習させたNNの機能は簡単にテストできる.
- 297 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:17:49 ]
- >>296
不可能。 NNのテストはすべての取りうる値を入力しなければならないから。
- 298 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:19:34 ]
- >>296
テストのことを知らないnoobかもしくは 研究室から一歩も出たことないボンボンですか?
- 299 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 00:20:57 ]
- >NNのテストはすべての取りうる値を入力しなければならない
え?
- 300 名前:296 mailto:sage [2008/01/03(木) 09:49:19 ]
- あのな,離散値でしか使わないNN応用も一杯あるの
それに連続値でも「分解能」ってのがあるの コンピュータを知らない純粋数学屋さん?
- 301 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 19:41:48 ]
- 296の言いたいことは分かるけど、
網羅テストが簡単に出来るような問題は NNに向いてないんじゃないかな? で、組み合わせ爆発が起きるような問題に対しては テンプレートデータを出来るだけ多く持ってきてテストするしかないから、 「テストが難しいから〜」っていうのは結局どんな手法にも当てはまるんだよね。 結局、NNがそう言われるのは過程がブラックボックス的というか 人の直感から遠いから、気持ち悪いって事だと思う。
- 302 名前:デフォルトの名無しさん mailto:sage [2008/01/03(木) 19:59:58 ]
- まぁ,テスト云々っていったら
「熟練工が作る鋳物は必ず成功しているか?一度ためしに使ってうまくいったから成功といえるのか?」 というもんだからな
- 303 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 21:18:23 ]
- >網羅テストが簡単に出来るような問題は NNに向いてないんじゃないかな?
実際にそういう応用が多いという事実が答えでしょう これは俺の推測だが,実際の応用は組込みシステムでのデータ量や計算量の圧縮的な用途が多い様な気がする 普通のやり方でもできるけど表が大きくなるとか計算に時間が掛かるとか
- 304 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 21:33:50 ]
- >>303
確か前に計算したことがあるが、適切なアルゴリズムを用いればNNよりもあらゆる面で効率的に処理可能だったと思うぞ。
- 305 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 01:28:54 ]
- そりゃハードと問題(必要な機能)に依存するはず
常に成立するとは思えないし,少なくとも証明は不可能だろう 32 or 16 bit 程度の積和演算だけはやたら速いプロセッサもあるし
- 306 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 11:16:49 ]
- 積和演算といえばDSPか
- 307 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 15:03:19 ]
- 最近?はマルチメディアプロセッサなんてのもあるな
- 308 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 15:05:54 ]
- >>306
携帯v.sニューロというわけか
- 309 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:16:01 ]
- >>307
CELLでNNやると速いのか?
- 310 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:26:52 ]
- >>309
浮動小数点数演算に特化して、しかもマルチコアだから、 それように作ったプログラムなら普通の数十倍出るかもね。 ただし、計算順序を工夫したりする必要はあるだろうけど。
- 311 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 22:30:36 ]
- CELLクラスタに俺の脳を移植してよ
- 312 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:28:54 ]
- それはいい考えだな
まずはコンパクトな脳から試すのがいいね
- 313 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:32:15 ]
- さて、そろそろ論文締め切りが間近だが、
切羽詰った状況でなぜか部屋の掃除がしたくなるのは俺だけではないはずだ
- 314 名前:デフォルトの名無しさん mailto:sage [2008/01/08(火) 23:42:55 ]
- 俺も現在似たような状況だがドラクエIVのDS版を始めてしまった。
- 315 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:52:24 ]
- >>314
あ〜そりゃもうやめられないな お前、今回は落としたな
- 316 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:56:36 ]
- 代わりに書いてやろうか
- 317 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 03:22:08 ]
- ニューラルネットで、論文生成するプログラム組んだらいいんじゃない?
- 318 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 08:12:51 ]
- >>317
お前マジ頭いいな。
- 319 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 10:59:54 ]
- >>317
論文の内容を悩むところだが、 ニューラルネットで論文生成するプログラム組む方法を論文にすればいいんじゃね?
- 320 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 11:08:35 ]
- >>319
NNじゃないが、そういうのは前に発表されてたな pdos.csail.mit.edu/scigen/
- 321 名前:デフォルトの名無しさん [2008/01/17(木) 07:21:32 ]
- 生データから抽出すべき特徴量を決定する指針ってある?
あれば教えて欲しい
- 322 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 11:39:20 ]
- 主成分分析
- 323 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 11:39:44 ]
- あ,判別分析の方がいいかも
- 324 名前:デフォルトの名無しさん [2008/01/17(木) 12:54:47 ]
- なるほど
ググって調べてみる サンクス
- 325 名前:デフォルトの名無しさん [2008/01/22(火) 23:36:24 ]
- ニューラルネットワークで密や疎というのはどんな事を意味するんですか?
- 326 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 03:25:24 ]
- スパース表現のことか? それなら
「神経回路網モデルとコネクショニズム」甘利俊一 [補稿]黒崎政男 東京大学出版会 認知科学選書22 ISBN4-13-013072-2 1989年初版 の 5.4 スパース符号化による連想記憶 が参考になる.図書館で探して
- 327 名前:デフォルトの名無しさん [2008/01/23(水) 07:27:44 ]
- それみたいです
本も調べてみます ありがとうございます
- 328 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 20:51:28 ]
- 本が見つからない場合に備えて簡単に書いておくと,
データをどの位粗く表現するかってことで(マンマや), 例えば0〜15の整数を4bit(4本)の二進数で表現するのは(情報量的に)最も密な表現. これに対し,入力の線を16本用意してそのどれかを1にするのはやや疎な表現. 100本位用意して適当な数本(一本もあり)を1にするのは疎な表現. 1000本だと凄く疎な表現(こういう区別そのものは厳密ではないし,決まっているわけでもない). 大切な事は,疎な表現を採用すると連想記憶のの記憶容量を増やすことができる点. BP学習の場合は収束が速くなる(密な表現だと凄く収束し難いことは経験的に良く知られていた).
- 329 名前:デフォルトの名無しさん mailto:sage [2008/01/23(水) 21:42:00 ]
- なるほど〜
すごく分かりやすい ありがとうございます
- 330 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:02:04 ]
- ニューラルネットワークでの株価予測について質問です
いくつかの論文で,予測株価と実際の株価の誤差を取るのではなく,方向一致率と呼ばれるもので判断しているんです 方向一致率は,上下変動が一致した回数を予測した回数で割ったものです これって単純に誤差を取るよりもどんなメリットがあるのでしょうか? ソースはあっても無くてもいいので,どなたか教えてください
- 331 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:26:55 ]
- >予測株価と実際の株価の誤差
は評価でき(るほど上手くいか)ないから代わりに使ってるんだと思われ
- 332 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 19:40:23 ]
- >>330
質問には答えられないのだが、参考までに ニューラルネットを使った株価予測の論文を読んでみたいです。 よければ、ポインタを教えてください
- 333 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 22:46:48 ]
- >330
株を売り買いして利益を出すには株価そのものを予測する必要はなく その時点から直近で上がるか下がるかだけ予測できれば良いから。 実用的に必要最小限の予測をしている(方が予測が当たりやすい)から だと思われ。まあ、変動があまりに小幅なら売買手数料のために逆に 損する可能性もあるが。
- 334 名前:デフォルトの名無しさん mailto:sage [2008/01/25(金) 16:14:45 ]
- GPUを使った実装というのに挑戦してみた。
オライリー本のAI入門に載ってる内容を弄っただけだし CPU版の実装よりクソ重いしと散々だけど動いてくれて嬉しいぜ…。 チラ裏
- 335 名前:デフォルトの名無しさん [2008/01/28(月) 09:11:15 ]
- ニューラルネットワーク
zoomtv.atspace.com/?X&2052226&0607@HiSpeedVision
- 336 名前:デフォルトの名無しさん mailto:sage [2008/01/28(月) 10:38:40 ]
- 上がるか下がるか当てるだけを評価するなら
ぶっちゃけ学習自体も regression じゃなくて classifier で良いような?
- 337 名前:デフォルトの名無しさん [2008/01/28(月) 17:19:14 ]
- ところで、データの娘の名前が思い出せない。
- 338 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 01:01:48 ]
- >>334
へぇ、そんなのできるんだ。 昔ちょっとだけDirectXいじってたんだけど、どうやってしてるの? 最近のGPUだったらピクセルシェーダーとか使ってるのかな。 もしデバイスのIOを直接叩いてるんだったら、かなりのもんだね。
- 339 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 08:30:21 ]
- shaderだろJK
- 340 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 09:54:31 ]
- GPGPUだね
- 341 名前:デフォルトの名無しさん [2008/02/01(金) 16:49:06 ]
- ニューラルネットワークのプログラムを組んでみたんですが、バグのせいかどんな入力に対しても同じ値しか返しません
原因としてどのようなことが考えられるか、教えていただけないでしょうか?
- 342 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:52:10 ]
- だったらソース晒しなよ
- 343 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 16:58:38 ]
- >>334
CPUより遅かったら意味ないじゃんw でも、素子数が増加しても並列計算でスピード変わらん!とかあるのかな?
- 344 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 17:11:43 ]
- void back_propagation()
{ int i,j; double dih[Hneuron],dho[Oneuron]; //誤差 double sum; for(i=0; i<Oneuron; i++){ dho[i] = signal[i] - oout[i]; //出力層の誤差の計算(出力はシグモイド関数にかけてない) } for(i=0; i<Hneuron; i++){ //出力層の重み修正 for(j=0, sum=0; j<Oneuron; j++){ dwho[j][i] = ( Eta * dho[j] * hout[i] ) + ( Alpha * dwho[j][i] ); who[j][i] += dwho[j][i]; sum += ( dho[j] * who[j][i] ); } dih[i] = hout[i] * ( 1 - hout[i] ) * sum; //中間層の学習信号 } for(i=0; i<Oneuron; i++){ //出力のしきい値修正 dothreshold[i] = ( Eta * dho[i] ) + ( Alpha * dothreshold[i] );; othreshold[i] += dothreshold[i]; }
- 345 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 17:12:35 ]
-
for(i=0; i<Ineuron; i++){ //中間層の重み修正 for(j=0, sum=0; j<Hneuron; j++){ dwih[j][i] = ( Eta * dih[j] * iout[i] ) + ( Alpha * dwih[j][i] ); wih[j][i] += dwih[j][i]; sum += ( dih[j] * wih[j][i] ); } } for(i=0; i<Hneuron; i++){ //中間層のしきい値修正 dhthreshold[i] = ( Eta * dih[i] ) + ( Alpha * dhthreshold[i] ); hthreshold[i] += dhthreshold[i]; } } コンパイラはBCCを使ってます。
- 346 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 17:36:31 ]
- >>341
ソースまだ見てないけど、学習後の重みをファイル出力してみて、 全部0とかになってたら、BPの実装ミス。 そうでなかったら、全部同じ出力とかにはならないだろうから、 入出力間の伝搬のミスってことになる。
- 347 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 19:00:55 ]
- 重みがそれっぽい感じになってて、出力も学習元のデータからして異常とは言えない数値になってます。
具体的には、 学習させた結果の重みを別のプログラムに読ませて、foward propagationだけを行って予測させる。 その予測された結果を入力の一部として使って、さらに次の予測をさせる という風にしているのですが、最初の予測結果と2番目以降の予測結果が全く同じになります。 何回学習させても重みが変わらなかったり、1回目だけ変わってその後変わらなかったりするのでback propagationに問題があると思って途中の重みやその変化量を表示させているのですが、原因の見当がつかず困っています。
- 348 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:03:54 ]
- >dho[i] = signal[i] - oout[i]; //出力層の誤差の計算(出力はシグモイド関数にかけてない)
そもそもこれが許されてるのかどうか俺は知らんのだが、 >dih[i] = hout[i] * ( 1 - hout[i] ) * sum; //中間層の学習信号 シグモイド通してないなら x*(1-x) が出てくるのはおかしくね?
- 349 名前:341 mailto:sage [2008/02/01(金) 20:08:23 ]
- >>348
中間層の出力はシグモイド関数にかけてるのでそこはあってると思います
- 350 名前:デフォルトの名無しさん mailto:sage [2008/02/01(金) 20:47:11 ]
- > dwho[j][i] = ( Eta * dho[j] * hout[i] ) + ( Alpha * dwho[j][i] );
dwho[j][i]決めんのにdwho[j][i]使ってるけどこれっていいのかな? 時系列扱わせているみたいだから、前時刻の修正量を重みAlpha反映させたりしてるの? あと気になるのは、sumに足しこむのがwhoとかの修正前な気がする。 まあ、自分のコードと大分違うんでわからんけど。 多少面倒だが、いきなり目的のデータ使うんじゃなくて、 y = sin(x)のような既知の単純な学習データで検証するのも手かもしれない。
- 351 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 03:37:33 ]
- しきい値に関しては定数入力を用意して重みで実現する方が
プログラムがすっきりするし高速化し易いから定石なんだよね この実装は普通のとかなり違うからコードだけじゃ分からないねぇ 元の式から書いた方がいいと思われ 元式の微分周りにはミスはない?
- 352 名前:341 mailto:sage [2008/02/02(土) 23:38:31 ]
- すいません。
BPではなく、最初に重みとしきい値を乱数生成する部分の範囲がおかしかったようです。 ご迷惑おかけしました。
- 353 名前:デフォルトの名無しさん mailto:sage [2008/02/02(土) 23:40:38 ]
- >>323の判別分析をググってみたんだが
これでNNに入力する特徴量を選択をする場合、 あるデータに対して特徴量ごとに判定結果を算出して その結果をもとに特徴量の有効性を計算するの? それとももっと正確な指標が数値で出るの?
- 354 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:06:50 ]
- >生データから抽出すべき特徴量を決定する指針
の話だったから(分類用なら)判別分析で固有値が大きい方から順に と思ったのだが. 学習済みの NN の隠れ層に形成された特徴の寄与率を評価するのは また別の話になると思う 定番というのは知らない(あるのか?)が, 例えばあるニューロンを一個切り離して成績を比べるとか
- 355 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 14:49:34 ]
- 今回の卒検でjooneとかいうjavaのニューラルネットワーク・ライブラリを使おうとしてたんだが、
正直失敗した。 がんばって英文を読んだにもかかわらず、使いにくい設計、やる気をそぐスペルミス(cycle->cicle)など、 三日がんばったんだが、結局自作のプログラムに戻した。 そしたらやろうとしてたことが十分ぐらいでできてまた泣いた。 もうこの際みんなでオープンソースのライブラリ作らない?
- 356 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:31:42 ]
- 面白そうだとは思う。
しかし言いだしっぺが大まかな仕様や実装例を上げないとgdgdになる法則。
- 357 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:27:12 ]
- 俺はニューラルネットに全然詳しくないのだが、
こういう分野の理論ってライブラリ化できるものなんでしょうか? 俺みたいな詳しくなくてもコンポーネント的に簡単に使えるようになると、 すごく面白そうな悪寒。
- 358 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:45:06 ]
- haskellのfgl使ってろや
ニューラルネットとか言っても所詮はグラフ
- 359 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:56:23 ]
- 日本語でOK
- 360 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:02:15 ]
- まだ大学1年生でコンピュータサイエンスは素人同然なのですが、
ニューラルネットって重み付きグラフというものとは違うものなのですか?
- 361 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:01:53 ]
- >360
ただの情報(データ)表現の一種であるグラフ(重み付きでも)と 情報処理装置であるニューラルネットをどうやったら混同できるんだ?
- 362 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:09:37 ]
- 時間という流れるものに犯されすぎ
- 363 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:21:11 ]
- え、ぜんぜん関係ないんですか?
ニューラルネットは重み付きグラフで表現できない??
- 364 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 03:58:44 ]
- 接続関係だけ表現しても道路地図や路線地図と何も変わらん
- 365 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 04:26:00 ]
- 簡約によって副作用が生じる場合と生じない場合で「表現すること」と「計算すること」の同値性が崩れる場合があって,
「表現するだけでは足りないのだよ・・・副作用は表現では現れない」という結論を導きたかった. 具体的に言うと「ニューラルネットワークは重み付グラフで表せますか?」は 「ニューラルネットワークは自身の重みを時間の推移に従って書き換えていく(副作用)があるので,あらわせない」だ. で,簡約で副作用を容易に持ち込めるlispを使って例を挙げたかったがあきらめた(^p^ 重み付き非決定性グラフとかあれば表現可能かも
- 366 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 04:33:17 ]
- >>365
別にそういうアルゴリズムは副作用なくても表現できるんじゃないの。
- 367 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 04:47:05 ]
- だって、NNの推移って、グラフからグラフへの関数を一定時間ごとに呼び出すだけでしょ?
- 368 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 05:00:35 ]
- どうやら「表現」に関して認識の差があるみたいだ
語彙が足らなくてうまく伝えられないから引っ込むぉ
- 369 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:16:18 ]
- ニューラルネットにとって時間の推移(時間発展)は
本質的だと思うけどな。 そういう意味で(副作用の無い)関数とは全く異なる。 そう言えば「副作用」って大抵、時間に関係してるな。 「時間」の推移による変化も完全に記述できる「述語論理」が まだ発明されていないと言うのが大きいのかな?
- 370 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:33:04 ]
- >>369
たとえば、Haskellの場合はIOモナドに処理手順を閉じ込めてしまえば、main関数の終了時に順番に実行してくれる。 遅延評価だから、停止しない処理も記述可能。 1ms毎に関数を無限に適用し続けるといった処理も(言語仕様上では)副作用なしに記述可能。
- 371 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 10:55:17 ]
- >>369
たしかに、そうだな。 仕様記述言語のZという言語を研究で使ったことがあるが、たしかに時間に関する記述はできなかった。
- 372 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:15:48 ]
- >370
うん。 しかしHaskelの場合であっても時間による副作用を 全てI/O処理(言語仕様の外側)に閉じこめているだけであって、 時間発展(副作用)のある系の記述を無い系の記述に 全て変換してしまえるわけじゃないだろう?
- 373 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:27:57 ]
- >>370
時間見てワロタ お前いつ寝てんの?w
- 374 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:17:46 ]
- 結論として
「副作用の全く無い関数型言語のみで記述できるアルゴリズムでは 時間発展のある系の完全なコントロールはできない」のだと思う。 コントロールしようとするとどうしても アルゴリズムの中のどこかで副作用を意識せざるを得ない。
- 375 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:58:42 ]
- >367の間違いはニューラルネットの重み付け更新
(NNの推移)はその出力に依存する事を忘れている事だと思う。 即ちNNの機能は処理の時間的順序関係に強く依存している。
- 376 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 14:24:56 ]
- 昔々,Prolog で I/O もバックトラックしたら
という話を思い出した
- 377 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 16:48:58 ]
- ちょっと訂正
>375は「NNの推移はその入力に依存する」がより正しいな。 入力がすべて既知とするなら出力は先に計算できるわけだから。 提示される未知の入力に対して(その一部を)記憶し 適応するからこそ時間依存の(時間で発展する)系なわけだ。
- 378 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:58:01 ]
- もうひとつ結論
「記憶し、学習し、適応する」=「副作用」
- 379 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:05:32 ]
- 結局、NNのデータ構造はグラフってことでOK?
- 380 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:35:19 ]
- >379
いき値固定でかつ各ニューロンの情報処理(計算)機能を 省略して表現するなら。 また静的な重み付きグラフならある時点での (データ構造の)スナップショットと言う事になるな。
- 381 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 20:58:18 ]
- それNNじゃないしw
|

|