「ほっ」と。キャンペーン

<   2012年 03月 ( 31 )   > この月の画像一覧

記憶の絞り込み検索

前回の記事で、想起は連想で行われるが、キーワードから紐をたぐるように目的語を検索するような単純なものではなく、一種の探索行動だと書いた。それはキーワードには検索のノイズになるような多くの連想があり、それらの中から目的のものをとり出さなければならないからだ。例えて言えば干し草の中から一本の針を探しだすようなものだ。

同じような事情は Google で全文検索をする時にも経験する。キーワードの結果に関係のない多くの検索結果が得られる場合だ。そのようなときには、適切な複数のキーワードを組み合わせて絞り込み検索をすると、目的の記事にたどり着くことができる。

逆に、それとの類推で、脳の記憶の中から目的の単語を検索するのに絞り込み検索を使えないかと考えた。キーワードとそれに関連させる語を記憶するときに、キーワードに余計な状況を付け加えると想起が簡単になるのではないかと考えたのだ。

そこで、試してみた。次に上げる疾患のリストには、心疾患があっても手術が比較的安全にできるものを列挙してある。この項目を順番に暗記するのだが、次の項目の連鎖を記憶するのに、キーになる単語をふくらませてから、次の単語に関連付けるようにしてみた。

内視鏡手術
体表の手術
白内障
乳房

つまり、キーになる先行する項目に周辺状況を加えて、単独のキーワードをそれらでふくらませてから次の語句に関連付けるようにしてみた。具体的には次のようになる。

内視鏡手術は体の中を手術するが、体の外を手術するのは -> 体表の手術
体表の手術のように体の表面にあるが透明な物は -> 白内障
白内障の目のように丸くて2つあるが女性に特徴的なのは -> 乳房

こういうふうな連想の作り方をしたら、簡単に4項目の想起ができた。

面白くなってきたので、紛らわしい用語の記憶にも挑戦してみた。アマリール、アルマール、アイトロール、アーチストはそれぞれ作用が全く異なる薬剤だ。ときどきど忘れをして、Google先生にお世話になることがあるが、これにも絞り込み検索をやってみよう。

アマリールは何がが余っている、つまり、余った血糖をよくするのだから -> 糖尿病の薬
アルマールは丸がある、丸を描くときに手が震えるとギザギザの丸になる -> 振戦の薬
アイトロールは愛している人がロール(転げまわっている)して胸を痛がっている -> 狭心症の薬
アーチストは職人だ、何の職人かというと心不全を治療する職人 -> 心不全の薬

たんなる語呂合わせだが、単独の薬剤名と作用の連想を作るためにくりかえし唱えるよりはよほど頭に入りやすい。

それでは、もっと変哲のない一般的なもののリストはどうだろうか、鉛筆、アヒル、ホッチキス、虫眼鏡、懐中電灯をその順番に覚えてみよう。

鉛筆で絵を描いていたがそれはアヒルの絵だった -> アヒル
アヒルが泳いでいたら脚を噛まれたが、噛んだのはホッチキスだった -> ホッチキス
ホッチキスで紙をとめていらた紙が燃え出したが、日光を虫眼鏡で集めて紙を焼いていた -> 虫眼鏡
虫眼鏡を覗いていたら強い光がさして驚いたが、懐中電灯で照らされていた -> 懐中電灯

セサミストリートのアニメーションのようになってしまったが確かに記憶には残る。

このように、キーワードに余分なものを付け加えて想起の条件を絞ってしまう記憶の絞込み検索はかなり有効なツールかもしれない。
[PR]
by tnomura9 | 2012-03-31 18:14 | 考えるということ | Comments(0)

逆引きHaskell

Haskell の逆引きがないかとググったらあった。

逆引きHaskell

うれしい。
[PR]
by tnomura9 | 2012-03-31 17:50 | Haskell | Comments(0)

RWH の読み方(23) 第4章

Real World Haskell 第4章 Functional Programming

この章では Haskell を使ってプログラムを作るときの定型的なパターンについて解説してある。目次からこの章のセクションを引用すると次のようになる。

Tinking in Haskell
A Simple Command-Line Framework
Warming Up: Portably Splitting Lines of Text
Infix Functions
Working with Lists
How to Think About Loops
Anonymous (lambda) Functions
Partial Function Application and Currying
As-patterns
Code Reuse Through Composition
Tips for Writing Readable Code
Space Leaks and Strict Evaluation

太字のところはサブセクションが多いセクションだ、その分内容も多いのだろう。とりあえず最初からざっと眺めてみよう。

Thinking ... はおそらく導入部分だ、Haskell でプログムを書くときの特色などを説明しているのだろう。

A Simple Command-Line ... はこの章に出てくるサンプルプログラムを実行するための共通のフレームワークを紹介してある。RWH の特徴として、解説した内容はできるだけ読者が実際にプログラムを動かして確認できるように工夫してある。これは Haskell が頭で理解するのが難しく感じても、実際にプログラムを動かしてみると意外に簡単に理解できるからだ。

Warming up ... は文字通りウォーミングアップ。簡単なサンプルプログラムを作って動かしてみるのだろう。

Infix Functions は、関数を中置演算子に使う時の方法。主に可読性の向上がねらい。

Working with Lists と How to about Loops はサブサブセクションが多い。Haskell のプログラムを書くときの中心となる部分だからだ。このふたつが分かれば Hakell のプログラムが何となく書けるようになる。

Annonymous ... は無名関数の利用法。無名関数は高階関数の引き数にしたりなど、使い道が多い。

Partial ... は関数の部分適用について。これも Haskell を効果的に使うための必須のテクニック。ありがたみは使ってみないとわからないが、プログラムの記述が非常にコンパクトになる。

As-patterns は関数の再帰的定義をする時に便利。これも使ってみないと分からない。

Code Reuse ... 以下の3つのセクションは Haskell のプログラミングの際の応用的なテクニック。

この章を読みこなしたら、小さなHaskell プログラムなら簡単に書けるようになるような気がする。Hakell のプログラムはリストの扱い方とループを再帰的定義で書けるようになったら、難しいとは感じなくなる。第一の関門はおそらく再帰関数の書き方だろうが、これを突破すればめくるめくHaskellの世界を垣間見ることができる。
[PR]
by tnomura9 | 2012-03-31 07:11 | Haskell | Comments(0)

連想力をつける

前回の記事で、コンピュータが外部脳として使える時代は、詳細な情報を覚えることよりもどこにその情報があるのか情報の所在を突き止める能力のほうが大切だと書いた。

インターネットの発達のおかげで、外部脳であるコンピュータを検索することで知識の詳細を簡単に引き出すことができるようになってきている。しかし、脳内の記憶の検索力の整備はおろそかにできない。脳の中の情報を取り出す方法にも工夫しておく必要があるということだ。完全な記憶はいらないが、どんなことだったかは思い出さないとコンピュータ検索に結びつけることができない。

脳の情報の検索は明らかに連想によっておこなわれる。したがって、個々の用語を正確に記憶するより、用語と用語の連想関係に注目するとよい。「りんご」ということばと「赤い」という言葉は連想で結びつけることができるので、「りんご」から「赤い」を連想したり、その逆の「赤い」から「りんご」を連想したりすることができる。

連想というとたとえば「りんご」と「赤い」のように2つの言葉の間の関連性と考えやすいが、「りんご」をキーにして「赤い」を思いつこうとすると、「りんご」から「青い」になったり、「りんご」から「酸っぱい」になったりする。「りんご」と「赤い」を関連付けたつもりでも、その作業後「りんご」から機械的に「赤い」が連想されるわけではない。

「りんご」と「赤い」を並べて何回唱えても、「りんご」から「赤い」を機械的に連想することはできない。

なぜなら、「りんご」からどうやって「赤い」を連想するかという作業は、紐をタグって「赤い」を引っ張り出すような単純なものではないからだ。「りんご」からは「赤い」以外にも「青い」や「酸っぱい」や「りんご酒」や「知恵の木の実」などの多くの単語が連想できる。それらの多くの単語のなかから「赤い」を選別するのが、連想の仕事になる。この場合の連想(想起)の働きは2つのものを結びつけることよりも、連想される言葉を選別する働きのほうが本質的である。

このように、「りんご」から「赤い」を連想する働きは一種の探索行動であって、単に紐をたぐりよせるような単純なものではない。

したがって「りんご」というキーワードからどのような方向に探索するかということを工夫することが大切で、「りんご」と「赤い」を何度唱えても検索の効率は上がらないことになる。

つまり、「りんご」というキーワードをみて、色とか形とかどんな文学に出現しているのだろうとか、あれこれと考える訓練が大切なのだ。ひとつのキーワードの周辺をいろいろと探索できる能力によって、目的のものを検索する効率がかわってくる。シャーロックホームズのようにある手がかりを見て、色々な物語を創り上げる能力が必要とされる。

情報処理技術者の教科書に必ずでてくるコンピュータの5大機能がある。
  1. 制御
  2. 演算
  3. 記憶
  4. 入力
  5. 出力
の5つだが、これらを頭から覚えるより、コンピュータ内部の構造である制御、演算、記憶と、外部とのインターフェースである入力、出力に分けて考えたほうがいい。また、制御、演算、記憶についても制御は、演算と、記憶をコントロールするし、演算と記憶では機能の性質が違うが、演算に使う値を記憶から取り出したり、記憶に保存したりするので、演算と記憶との相互作用もある。また、制御は、入力、出力も制御する。入力は外部からのデータを記憶に保存するが、その保存の作業は制御が受け持つ。

要するに何が言いたいのかというと、たった5つの用語の間ですらその間の連想が非常に多岐にわたり、また、有機的に関連しているということだ。単純に制御、演算、記憶、入力、出力の順に暗記してもその間の複雑な相互関係に思いを至らせることはできない。

効率的に情報を探しだす頭を作るためには、キーワードの周辺をいろいろと詮索する思考力が最も大切で、単に2つの要素を並べて繰り返し唱えても効果は上がらない。
[PR]
by tnomura9 | 2012-03-30 12:41 | 考えるということ | Comments(0)

必要なものを必要なときに

学習の方法論を考えるときにすぐに思いつくのは受験勉強の勉強法だ。本屋やインターネットを探すといくらでも見つけだすことができる。しかし、管理人の場合それらを読むとなぜか息苦しくなってすぐに読むのをやめてしまう。

大学受験の時の苦しい思い出を思い出すのが嫌だとか、ただで読めるのはここまで後は金を払ってくださいというような商業主義の雰囲気が嫌だというような、ガラスで爪をひっかくような感情的な抵抗もあるが、もうひとつは、それが試験問題の正答をだすという目的に特化されているからだ。

たとえば、数学の問題の解き方として「問題のパターンを見つけて公式を素早く思い出すのが大切だ」と勧めているものがある。公式の意味などは必要ない、問題の答えを導き出す公式を効率的に思い出せないと、問題数の多いマークシートの試験問題を捌くことはできないからだそうだ。これは間違いではない。受験には有効だ。短時間のうちに多くの数学の問題を解くために特化された方法だからだ。

しかし、この方法で数学を身につけてしまったら、数学の問題集ではない現実の解答のない問題にあたったときに、数学の知識を活用することはできないだろう。数学は問題を解くことも大事だが、むしろ、何が問題なのかを考えることのほうが大切だからだ。

受験勉強の勉強法が息苦しく感じられるもう一つの理由は、それが知識を全て頭の中に記憶することを想定されていることだ。最近感じるのは、脳の許容量の有限性だ。「脳のシナプスの数を計算すると宇宙の星の数に相当する。だから脳は無限なのだ。」という説明があるが、そう単純な話ではないだろう。

時々、記憶を忘れることができない病気の人の話を聞くことがある。先天性の場合もあるし、記憶事項を視覚化することで忘れないようにする記憶法を練習していってそうなる人もあるらしい。いずれの場合にも突然に過去の情景がありありと浮かんできて現実と区別がつかなくなり、日常生活にすら支障をきたすということだ。このことから、忘却は記憶の重要性を整理して、記憶の活用に脈絡をつける働きをしているのだという考え方もできる。

しかし、単純に脳の容量を節約するために瑣末なことは忘れるようになっていると考えることもできる。自然のはたらきとして脳を酷使しないようになっているのだ。

全てを頭の中に詰め込むというのはあまり有効な方法ではない。

それでは学習の目的はなんだということになるが、それは、「必要なものを必要なときに取り出すことができるようにする」ということだ。さし迫って抱えている自分の問題を解決するための手段を適切な期限内に見つけだすということなのだ。

たとえば、HTML のフォームから JavaScript でフォームのデータをとり出さなければならないという問題が発生したとする。その際に、タグの id 属性を設定しておけば JavaScript で id を利用してタグの値を取り出せるはずだという漠然とした知識があれば、あとはキーワードで Google 検索してプログラム例を見つけ出してプログラムを作ることができる。随分脳の節約になるのではないだろうか。

全てのものを頭の中に詰め込むのが目的ではなく、必要なものを探しだすことができるようになることが大切だ。

JavaScript について全く知らなければ、id 属性で値が取り出せることを思いつくことはできない。しかし、JavaScript の概要を知ってサンプルプログラムなどを作った経験があれば、その細部の細かいことは忘れていても検索で取り出せればいいのだ。脳を節約するための学習法は、情報の概要と意味を知ることに重点を置くべきで、細部まで記憶することではない。しかし、細部はいつでも取り出せるという状況にしておく必要がある。

つまり、脳のを上で述べたようなやり方で使うことによって、コンピュータを外部脳として使うことが出来るようになる。もちろん、グーグルは便利だが、それだけに頼ることはできない。自分のデータベースとしてのコンピュータの記憶を活用できる環境を作り上げることが大切だ。

科学の進歩によって、扱う必要のある情報が爆発的に増えている。そのような中で有限な脳の能力がどこまで対応できるようになるのか心配になっていた時があるが、ここに一つの解答があるような気がする。有限な脳の容量を補うための外部脳を開発すればよいのだ。また、そういうことが可能な時代になってきている。

そう考えると、大学受験は無理だが入社試験などはパソコン持ち込みネット接続可能な状態で試験をすればいいのではないだろうか。そうすれば受験者が何を記憶しているかではなく、何を探し出すことができるかを調べることができる。そのほうが即戦力になるのではないだろうか。

大切な自分の脳を壊さないように、脳には必要なものだけを入れるようにして、コンピュータを外部脳として活用することが大切だ。
[PR]
by tnomura9 | 2012-03-27 07:23 | 考えるということ | Comments(0)

ヨハン・フリードリヒ・ヘルバルト

独学ではあるがもう何年もプログラミングの勉強をしているのに、一向に実用的なプログラムが作れない。何故だろうと思ったが、それは仕事としてプログラミングに従事していないためだと思った。いわゆるOJTを受けていないからだ。

OJT(on the jop training) とはよく聞く言葉で、先輩について仕事をしながら、仕事の知識を習得していくくらいの認識しかなかったが、Wikipediaで調べてみたところ、もう少し深い意味があるようだ。

Wikipedia には、OJTが考えだされた経緯が書かれていた。はじまりは、第一次世界大戦時の船舶需要増加のため米国の造船所で10倍の従業員の補充が必要となったことに遡る。これには、従来の新人教育では全く需要を賄えなかったので、緊急要員プログラムの作成が必要になった。このプログラムの責任者が、チャールズ・R・アレンで、かれはドイツの教育学者ヨハン・フリードリヒ・ヘルバルトの四段階教育法を元に、四段階職業指導法を開発した。

OJTとは単に現場で教育するという意味だけではなく、切迫した熟練労働者の育成の需要を今までにない方法で早急に満たすための新しい教育法だった。

さらに、それには心理学を応用した4段階教育法という理論的背景を持っていた。OJTには意図的・計画的・継続的という要件があり、これを欠く単なる現場教育はOJTではない。

OJTについては Wikipedia に詳しいが、ヨハン・フリードリッヒ・ヘルバルトの四段階教育法というのが気になったので Wikipedia で更に調べてみた。

ヨハン・フリードリヒ・ヘルバルト(Johann Friedrich Herbart、 1776年5月4日 - 1841年8月14日)は、ドイツの哲学者、心理学者、教育学者。ケーニッヒスベルク大学で過去にカントも就任していた哲学教育学の教授を務め、晩年はゲッティンゲン大学の学部長を務めた。

彼は教育の目的を倫理学に、方法を心理学に求め教育学を体系化した。まず、教育の目的を強固な道徳的品性と興味の多面性の陶冶にあるとした。また、心理学をもとに教育の方法として「管理」「教授」「訓練」の三要素を提唱した。

彼は、彼の『一般教育学』という著書において四段階教授法を唱えた。彼は興味の「多面化」と「統一化」に焦点を当て、学習には、「専心」と「致思」の二段階があることを見出した。専心とは意識の対象を目的の知識に狭めることによって学習の内容を明確にすることだ。また、致思とはその明確にされた要素を既知の知識に関連づけることだ。

さらに、それを静的段階と動的段階に二分し四段階教授法を提唱した。その四段階とは、次の4つになる。

静的専心・・・明瞭 : 対象の限定によって意識の混乱を排すること
動的専心・・・連合 : 明瞭にされた対象をすでに習得させていた知識と結合、比較する
静的致思・・・系統 : 連合を経た知識を体系化
動的致思・・・方法 : 以上の段階を経た知識がほかの事象に応用可能になる

つまり、一度に多くのことは学べないので、必要な要素を絞り込んで理解できる数まで減らすこと。そうして、明確にされた学習対象の相互関係や既知の知識との連想を形成すること。その連想をさらに体系化すること。体系化された知識を他の事象に応用することだ。

要するに教育の結果を体系化された応用可能な知識に求めたのだ。

そこで、最初の「なぜ実用的なプログラムを作ることができないか」という疑問に戻る。実用的なプログラムはそのプログラムを成立させるための要素の体系(システム)に対応していなければならない。当然そのようなプログラムを作成するためにはそれに対応した体系化された知識がいる。

体系化された知識といっても、学問的に網羅された知識ではない。学問的な知識の中でも実用プログラム作成のために必要な知識が特に、システム的に関連している必要がある。

したがって、そのなかにはプログラム言語を扱う知識のみならず、実用的プログラムが扱う対象に対する知識も含まれる。この対象についての知識を獲得するのが独学では難しかったのだ。独学の教材は、自然、参考書になるが、参考書は実際のプログラムの体系を記すよりは、プログラム言語の使い方やアルゴリズム全般のような汎用的な知識の解説になってしまう。

OJTはこのような現場の知識の体系(システム)を新人に効果的に学習させるための方法だったのだ。

ばらばらな知識では本当の力を発揮させることはできない。システム化された知識でなければ応用することができないからだ。OJTを効果的に行うためには現場の知識が意識的に体系化されている必要がある。

最近の若者はマニュアル化されて自分で判断しないという批判を聞くことがあるが、マニュアルが存在するということは現場の知識の体系化がある程度意識的に行われているということだ。マニュアル化されているという批判が多くなるのは、一方では、マニュアル化の効果が大きいために多くの企業が採用しているという事実を反映している。

それにもかかわらず従業員が応用力をつけることができないとすれば、せっかく作られた体系を従業員の知識に組み込むことにどこかで失敗しているということなのだろう。あるいは、マニュアルとして記述されたシステムがそういう創造的な活動を誘発するような体系化ではないのかもしれない。

いずれにしても、創造的な活動を誘発する知識の体系をどうすれば創り上げることが出来るのかというのは面白い挑戦だ。

余談だが、創造的な活動の誘発については、オープンソフトウェア関連や、ニコニコ動画にみられるボーカロイド関連の活動が興味を引く。これらの分野に見られる加速度的な創造性や技術の進化を支えているものが何であるのかは見過ごしにできない問題だろう。
[PR]
by tnomura9 | 2012-03-26 07:29 | 考えるということ | Comments(0)

Bad Apple

Bad Apple

[ANIMELO 2010] Bad Apple!! Nomico + Masayoshi Minoshima LIVE !
Touhou - Bad Apple!! PV
Touhou ~ Bad Apple on the laser scanner
【暴徒】 Bad Apple!! 踊ってみた 【きなこ】
【仏壇仮面と】りりりんご【ただのんと】(Fullscreenver)

Bad Apple!!をヴァイオリンで演奏してみた
Bad Apple!! 弾いてみた
【旧作】化け猫がBadApple!!を原曲で弾いてみた【ピアノ】
[Orchestra Edition] Bad Apple!! ft Nomico - TouHou 4 - 東方
【BadApple!!】傷林果 【ShouRinka】
【BadApple!!】 傷林果 【Japanese Traditional Dance】


二次創作、三次創作の爆発力。
[PR]
by tnomura9 | 2012-03-23 07:27 | ボーカロイド | Comments(0)

ワインの色は何色か

ワインの色は何色と聞かれた時に何と答えるだろうか。

赤と答えたり、赤紫とこたえたり、深紅と答えたりするだろうが、どの言葉を使って答えるかで印象が随分違う。しかも、それは答えを発した本人の認知にまで影響をあたえるようだ。これらのカテゴリーに属する他の要素の色のイメージが干渉するからだ。

深紅などの単語は概念であって、色のイメージそのものではないが、多くの感覚的イメージの中心になってそれとリンクしている。それらの多くの要素のイメージがまた、色以外の様々な属性や感情などリンクしている。したがって、ワインの色をどの言葉に当てはめるかでワインの色の印象そのものが変化してしまう。言葉が認知をゆがめる要因となる所以だ。

ある現象に対してどんな言葉を使用するかということは、「レッテルを貼る」という意味以上に、随分重要な意味があるのだ。

また、単語の意味の境界線は恣意的なものだというのは、ソシュールを引用するまでもない。赤と紫のグラデーションがあるときにどこからどこまでを赤とし、どこからどこまでを紫色とするかは判断に迷うだろう。赤い色という概念は、教師付きパーセプトロンのように、色々な赤いものを見た時にそれが赤いという言明を受けて形成される判別機械のようなものだ。ここまでは赤であるという境界があるのではなく、毎回の刺激の提示とそれに対するそれが赤である、あるいは赤ではないという言明の試行錯誤の上に形成されるある推測が赤い色という意味の本質だ。

したがって、赤い色という概念は完結されたものではなく、常に新しい刺激の提示に対して開かれた状態にある。いままで、赤だと思っていたものが次の刺激の提示で赤ではなかったことが分かるという可能性は常に存在する。

このように言葉を使って判断をする場合二重の不安定性がある。ひとつは、おなじ現象に対し複数の言葉を与えることができるということ。もうひとつは、その言葉の意味が刺激の提示による変化に対して変わっていく可能性があるということだ。言葉による判断は思いの外流動的だ。

そうであるとすれば、言葉による判断の有効性はひとえにその言葉を使う主体の言語環境の経験の豊富さに依存すると考えることもできる。言葉を知っていればそれで十分という訳ではなく、言葉は使うほどに道具としての有効性が研ぎ澄まされてくるからだ。

最近小さい子供のいる友人に、夜寝る前の絵本の読み聞かせをするよう進めているが、一定の効果が上がっているようだ。頭のいい子共を育てようと思ったら、語彙の豊富な子供に育てるのが最も近道だと思う。また、テレビやパソコンを眺めていると、人間同士の会話が極端に少なくなるし、親が忙しすぎると子供との対話が皆無になる。現代の子供たちは言語的な環境がかなり貧しいと言えるだろう。

子供たちの学習能力や、社会性の低下を考える際に読書法や記憶法を云々する前に、コミュニケーションの道具としての言語環境を豊かにすることを考えるべきなのではないだろうか。
[PR]
by tnomura9 | 2012-03-22 12:52 | 考えるということ | Comments(0)

ワイン

「このワインは美味しいでしょう?」と聞かれて、酸味がとか渋みがとかコクがなどと分析できないので、いつもは、「そうですね、おいしいですね」といかにも感極まったような表情を作って頷くだけだ。

しかし、時には、「このイタリアのワインは、咲き誇るお花畑のような華やかな香りがしますね。」とか「風車に立ち向かうドン・キホーテのような悲壮な憂鬱感の中に人生の滑稽さと深さをを感じさせるようなスペインのワインですね。」などと答えてみたくなることがある。

試験の答案ではないのだから、間違っていたとしても、ワインを一口すすった時の自分の心に湧き上がったイメージを表現してもかまわないのではないか。

しかし、ワインを飲むたびにこのような大げさな表現を考えつかなければならないとしたら、億劫で飲むのが嫌になるだろう。やはり、「そうですね」と感服しながら美味しく味わったほうが楽しい。
[PR]
by tnomura9 | 2012-03-21 13:20 | 話のネタ | Comments(0)

ねるどら

寡作なのだけれど、音楽とMVのクオリティーが半端でない。

nerudrum さんのチャンネル

晩酌をしながら聴くといい。
[PR]
by tnomura9 | 2012-03-20 10:24 | ボーカロイド | Comments(0)