<   2007年 02月 ( 12 )   > この月の画像一覧

問題提起-結論読み

プログラムと思考(その4)で、段落を読むのに、要約を先に作って、内容をそれに関連付ける読み方が効果的だと書いた。実際に何冊かの本をこの「問題提起-結論読み」で読んでみたが、読解が非常に速くなるのにびっくりしている。

「問題提起-結論読み」では、最初に段落をざっと読んで要約を考える。主語述語の形でもよいし、問題提起-結論のようなものでもよい。次に本文を細かく読んでいくのだが、そのときに、必ず問題提起から出発し、結論に終わるように連想の糸を紡いでゆく。

本文中のキーワードには、それぞれ独立して並列に並べることのできるものと、原因結果の連鎖のように直列につながっているものがある。問題提起から始めて、直列に関連しているものはそのまま次々にたどって行って、結論までつなげる。並列なもの同士は無理に関連付けず、別の問題提起->キーワード->結論のスレッドとする。これを繰り返して、数本の問題提起から始まり結論に終わる連想のスレッドを作るのだ。たとえば、次のような文章の場合どういうふうに読めばよいだろうか。

ナレッジマネジメントは、「知識管理」あるいは「知識経営」とも訳され、前者が特にITを活用しながら個人やグループのもつ既存知識の共有・活用を目指すのに対して、後者はそれを超えて、新しい知識の創造を絶えず行うことによって連続的にイノベーションを創出し、組織の競争力を確保しようというものである。(『ナレッジサイエンス』 紀伊国屋書店より)

まず、この段落の要約は、問題提起は「ナレッジマネジメントとは」で、結論は「というものである」となる。「というものである」という結論は変な感じがするが、さっと読んでナレッジマネジメントのイメージがつかめないとき、「というものである」とあいまいな表現を使っておくと便利だ。また、この問題提起は段落の文頭から、結論は段落末尾の文から適当に取ってきてもかまわない。厳密な要約でなくても、連想のはじめと終わりだけ決めておけばいいのだ。

実際のキーワードのスレッドは次のようになる。

ナレッジマネジメントは・・・「知識管理」あるいは「知識経営」と訳される・・・というものである。
ナレッジマネジメントは・・・「知識管理」・・・ITを活用・・・既存知識を共有活用・・・というものである。
ナレッジマネジメントは・・・「知識経営」・・・新知識の創造・・・イノベーションの継続・・・組織の競争力の確保を目指す・・・というものである。

こういう風に独立した3本の連想スレッドを作ると、ナレッジマネジメントの全体像が自然に浮かび上がってくる。

つまり、ナレッジマネジメントの訳語と、知識管理と知識経営はそれぞれ並列に独立したテーマであり、「知識管理」から始まるキーワード群は論理的な前後関係で結びついているのだ。しかし、これらの3本のスレッドはいずれも「ナレッジマネジメントは」という問題提起から出発し、「というものである」という結論に終止しているので、関連する話題であることが分かる。

このように「問題提起-結論読み」をすると、自然に段落の論理構造が見えてくるから面白い。なぜ、このような読み方をしたほうが、ノートをとって段落の階層構造を探すより簡単に感じるのかは不明だ。

ただ、階層構造のノートだと連想が細切れにちぎれるし、どこから始まってどこに終わるのかがはっきりしない。構文の入り組んだ長文を読んでいるようなものだ。

それに比べ、「問題提起-結論読み」なら連想の出発点と終点がはっきりしているので連想の方向性が分かりやすいし、一つ一つの連想が数珠繋ぎになって関連している。したがって、主語述語のはっきりした短文を読んでいる感じで分かりやすく感じるのだろう。そう考えれば、出発点と終点さえはっきりしていれば「問題提起-結論」がその段落の厳密な要約ですらなくてもかまわないのかもしれない。

これは、人が道順を覚えるやり方にも似ている。道順を覚えるとき頭の中に厳密な空間的な地図があるわけではない。曲がり角に来たときにつぎにどちらの方向へ行けばよいかを判断できればよい。空間的な地図を考えるよりは選択肢が減って、混乱が少ない。同じように、「問題提起-結論読み」は段落全体の構造を考えるよりは選択肢が減って分かりやすく感じるのだろう。
[PR]
by tnomura9 | 2007-02-27 12:40 | 考えるということ | Comments(0)

プログラムと思考(その5)

コンピュータのプログラムと思考との関連性について考えてきたが、結論としては、プログラムも思考もその本質は論理構造であるということだ。変数名や用語には本質的な意味はなく、それらが関連しあって作られる論理構造こそが、思考の本体だ。

したがって、「理解した」という感覚は、この論理構造を把握したときに生まれる。ただ用語を覚えているだけの知識なのか、生きて役立つ知識なのかは、この構造をどれだけ把握しているのか、知識の論理構造のウォークスルーや、パラメータの操作によるシステム全体の動作の制御をどれほど自在にやれるかということにかかっている。

また、論理構造は一般に網の目状のネットワークになっており、単純な直列の連鎖ではない。しかしながら、人間の頭は、直列の連鎖を認識しやすくできているようだ。したがって、システムのネットワークを直列に連鎖した経路に分けて調べると理解しやすい。

また、全体の論理構造は、部分システムのシステムとして存在する。したがって、部分システムの内部構造をブラックボックス化して、全体の論理構造を部分システムのシステムとして理解することもできる。たとえば、プログラムの関数や、科学関係の専門用語はこのような部分システムを表している。しかし、時に応じて部分システムの内部構造も取り扱うことができれば、より深い理解につながるだろう。

いずれにせよ、知識の本質は要素間の論理構造であり、真に理解するというのは、論理構造を自由に辿ったり操作したりできることなのだ。
[PR]
by tnomura9 | 2007-02-25 21:02 | 考えるということ | Comments(0)

プログラムと思考(その4)

プログラミングの手法で思考法に活用できそうなものには関数の考え方もある。

プログラミングしていると、同じような処理を何度も必要とすることがある。そういう処理をサブルーチンとしてひとつにまとめて、その処理が必要になったときはそのサブルーチンを呼んで処理させるようにすると、プログラムの見通しがよくなり、プログラムの行数も節約できる。

関数は、その考えを発展させて、サブルーチンを呼ぶときに引数を渡せば戻り値が戻ってくるようにしたものだ。関数は呼んだときの副作用が極力起こらないように、使い捨ての変数は局所変数としてほかから操作できないようにし、また、関数が戻り値を返すときには破棄される。入力を入れたら出力だけを考えておけば副作用なく使うことができるという意味で関数と呼ばれているのだろう。

関数のもうひとつの特徴は入り口がひとつで、出口もひとつであるということだ。関数が呼ばれたとき、プログラムの処理の行き先が分岐して他のところへ行ってしまって帰ってこないということがない。関数の中でほかの関数を呼ぶ場合があったとしても処理は必ず戻ってきて関数の出口に到達する。

この入り口がひとつで出口がひとつという特徴は本を読むときにも利用することができる。

文章の段落は、ひとつの主題について述べているが、その内部にはその主題に関連する論理的な構造を持っている。そうして、それはその段落の結論という形で出力されるのだ。よく練られた文章では、段落は問題提起と結論に要約できる。本文の内容は問題提起から発して結論に至る論理の連鎖になっている。したがって、入り口と出口である問題提起と結論を抑えておいて、本文の内容を常にそれに結びつける形で読むようにすると読解が楽になる。

例を挙げてみよう。次の文章は、『シグナル伝達研究』 山本雅、仙波憲太郎編 羊土社 からの引用だ。

VEGF (以下VEGF-A) は血管透過性活性と血管内皮細胞増殖活性をもつ分子量約3万のタンパク質であり、PDGFと遺伝子スーパーファミリーを構成する。VEGF関連因子としては、PIGF、VEGF-B、C、D、Eなどが単離されているが、VEGF-A遺伝子のみが血管発生に必須である。PIGF、VEGF-Bは遺伝子を欠失させても大きな異常は認められない。VEGF-Eは、Orfウィルスゲノムに見出された遺伝子で、タンパク質は浮腫の少ない、強い血管新生活性をもつ。


VEGFについてのいろいろな特性が詰め込まれているが、先ず主題である「VEGFはたんぱく質である。」ということだけを押さえておくとよい。この場合問題提起は「VEGFとは何か」であり、結論は「たんぱく質である」ということだ。要約を押さえたら、内容を読むときに必ず問題提起から始まり結論に至るように読んでいく。たとえば、

VEGFは、・・・分子量約3万の・・・たんぱく質である。
VEGFは、・・・PDGFと同じ遺伝子スーパーファミリーに属する・・・たんぱく質である。
VEGFは、・・・関連因子にPIGF, VEGF-B, .... , が単離されている・・・たんぱく質である。
VEGFは、・・・VEGF-A遺伝子のみが血管発生に必須である・・・たんぱく質である。

のようにすると分かりやすい。実は、上の例の段落の実際の構成は次のような階層構造をとっている。

VEGF
+活性
++血管透過性
++血管内皮増殖活性
+分子量3万
+PDGFと同じスーパーファミリー
+VGEF関連因子
++VEGF-A
+++血管発生に必須
以下略

しかし、人間の連想はこういう分岐のある構造にはついていけないので分かり難く感じるのだ。階層性のある構造も問題提起と結論にいたる一連の連想にしてしまうと分かりやすい。もちろんこの方法では、本文の論理構造の一部を辿っているだけだが、連想の糸の数を増やすことによって網羅することができる。

段落の要約を先に押さえて、問題提起から発する連想を結論につなげていくというやり方は、連想の糸は分岐できないという性質に合った読解法なのだ。
[PR]
by tnomura9 | 2007-02-25 09:00 | 考えるということ | Comments(0)

プログラムと思考(その3)

プログラミングのテクニックで一般の思考に活用できそうなものは、モジュールの考え方だ。プログラムのモジュールはwikipediaから引用すると次のようなものである。

モジュールは、(一般に凝集した)サブルーチンとデータ構造の集合体としてのソフトウェアの実体である。モジュールはその部分だけでコンパイル可能な単位でもあり、再利用可能であると同時に、複数のプログラマが同時並行的にそれぞれ異なるモジュールの開発を行うことが可能となる。モジュールの特徴として「モジュール性」とカプセル化があり、それらによって複雑なプログラムを理解しやすくできる。


モジュールはインターフェースと、モジュール内部のプログラムである実装が分離されている。したがってモジュール内部のプログラムを知らなくても、モジュールの機能は簡単に使うことができる。たとえば、printf() 文のプログラムを知らなくても printf("hello, world\n"); を使って文字列を表示することができる。

複雑なプログラムは、相互干渉のないモジュールを組み合わせて作ることで能率よく作成変更することができるのだ。

それでは、本を読むときのモジュールとはなんだろうか。それは要約だ。本文の論考を省略して問題提起と結論だけを表せば、それはモジュールとして使うことができる。モジュールのインターフェースには入力と出力がある。要約の入力は、問題提起、出力は結論だ。内部の論理が十分信頼のおける要約をたくさん持っていると、それらを組み合わせて複雑な問題を見通しよく扱うことができる。幾何学における定理の利用もそのひとつだ。

プログラミングといっても思考のひとつの形であることがこれでもわかる。プログラミングで開発された技術を思考に利用し、思考の方法をプログラムに応用するというように、思考とプログラムの相互作用をさせることで、思考というものの本質が見えてくる。
[PR]
by tnomura9 | 2007-02-22 16:21 | 考えるということ | Comments(0)

プログラムと思考(その2)

コンピュータのプログラムと思考とが似ているといったが、似ているどころではない。コンピュータのプログラムとは、ある種の思考を厳密に記述したものなのだ。

思考というのは、結局のところ、論理的関係で結びついた要素の体系の全体だ。教科書や自分で作るノートもそうだし、コンピュータプログラムもそうだ。その上、コンピュータプログラムの場合は、ノートと違って、その論理体系が生きている。つまり、入力を与えると、その論理体系で処理され、出力として出てくるのだ。

したがって、プログラミングで使われるさまざまなテクニック (たとえば、論理のサブシステムを関数という形にして、内部構造を隠蔽し、簡単な入力と出力のあるブラックボックスにしてしまう方法など) は全て頭の中で考える際のテクニックとしても使うことができる。

しかしながら、コンピュータシミュレーションを除いて、プログラミングを思考の補助手段として使う人はいないだろう。それは、プログラムをきちんと動作するようにするまでの手間が半端ではないからだ。

思考の場合は、ある程度あいまいさを残しながら先へ進めていくことができる。しかし、コンピュータプログラムの場合は、変数名が一字違っても動作させることができないのだ。

もし、記述のあいまいさを許容しながら動作するコンピュータプログラムがあれば、大いに思考の補助手段として活用できるのではないだろうか。

たとえば、次のようなインタープリターがあったら便利だ。概念設計のようなものもすぐにプログラムとして動作させることができる。変数は全てデフォールトの値を持っており、関数が呼ばれたときに必ず応答できる。詳細の設計でも変数名のデータベースを持ち、少々変数名の記述が間違っていても、本当の変数名を推測してしてくれる。また、条件の判断と代入の違いを文脈から判断して修正する。さらに、プログラムの論理構造を図示してくれたり、プログラムに関する真理表の起こりえる可能性を全てチェックしてくれる。

このようなインタープリターがあれば、考えるという作業がずいぶん能率的になるのではないかと思う。
[PR]
by tnomura9 | 2007-02-20 07:39 | 考えるということ | Comments(0)

プログラムと思考

コンピュータのプログラムと思考は似たところがある。

ひとつはどちらも原因結果の連鎖の複雑なネットワークであるということ。また、そのネットワークの一部が機能していなければ、全体的な動作に変なところが出てくるということだ。

もうひとつは、全体のネットワークを部分的な機能単位に分けることができるということ。プログラムにモジュールや関数があるように、思考にも概念という部分システムがあり、その中身をブラックボックスとして扱うことができる。

さらに、コンピュータのプログラムでは、変数の名前が違っていても、論理構造が同じなら、プログラムはきちんと動作する。一般的な知識の習得でも、多少用語の記憶があいまいでも、論理構造が頭に入っていれば理解しているといってよい状態だと思う。大切なのは、用語の名前ではなく、論理構造なのだ。

なぜ、このようなとりとめのないことを書いているかというと、コンピュータのプログラムの作成を思考の効率化と厳密化のツールにできないかと考えているのだ。

実際にプログラムを作成してみると分かるが、少し複雑なプログラムになると動作チェックや、バグの処理に膨大な時間をとられてしまう。とても、思考の効率化どころか思考を停滞させる結果にしかならないように見える。

それにもかかわらず、プログラムには思考の本質につながる重要な特徴があるような気がする。まだ、自分の頭の中でも整理されていないのでまとまらない文章になったが、忘れないうちに書いておいた。
[PR]
by tnomura9 | 2007-02-16 07:25 | 考えるということ | Comments(0)

コントロールとエフェクト

パソコンの操作を習得するときに、マニュアルだけを読んでいてもさっぱりわからないのに、例題のとおりに操作してみるとすっとわかったりする。コンピュータは手で学習するものなのだろうかと、面白いと思っていたが、手で動かしたから理解できるというものでもないような気がする。

理解しているかそうでないかがはっきりと分かるのは、電気製品を操作するときだ。テレビなら、どこを押せば電源が入り、どこを操作するとチャンネルを変えることができるのか理解していないと操作できない。

結局のところ、理解しているというのは、どこをいじればどういう結果が起きるかを知っているということなのではないか。電源のスイッチのように操作を加えるものを「コントロール」、テレビの画面のように操作によって変化するものを「エフェクト」と呼ぶことにすると、「理解する」ということは、「コントロール」を操作したときに、どんな「エフェクト」が起きるかを予測できるということなのではないだろうか。

この「コントロールとエフェクト」の考え方は、文章を理解するのにも使うことができる。たとえば次のような文章の場合、

レプチンの発現量を減少させるものには、βアドレナリン作動系や精巣などで産生されるアンドロゲンがあります。

したがって、男性より女性のほうの血中レプチンが高いのは単に脂肪量の差によるだけではなく、性ホルモンも影響しています。このことは性転換術を対象にした研究でも確かめられました。

『肥満遺伝子』 蒲原聖可著 講談社ブルーバックス

コントロールはアドレナリン作動系やアンドロゲンで、これらを増やしてやる(つまみを右に回す)とエフェクトのレプチンが減少するとイメージすると意味を理解しやすい。したがって、女性の場合はアンドロゲンが少ないのだから(つまみを左に回す)、レプチンの量は多いことになる。

電気機械にしても、書籍にしてもこの「コントロールとエフェクト」が複雑に絡み合ったネットワークからなっている。それらを理解するのに、どこをいじったら結果がどうなるのだろうと考えながら調べていくと、自分がどれだけ理解しているのか確かめながら進んでいくことができるような気がする。
[PR]
by tnomura9 | 2007-02-14 07:02 | 考えるということ | Comments(0)

論理

思考法に関する参考書を読むと必ずといっていいほど、論理的な思考の重要性を強調している。一方では、ラッセルのパラドックスやゲーデルの不完全性定理が紹介されて、論理的思考では世界のすべてを証明することはできないのだなどといわれて、論理ってあんまり頼りにならないのだろうかと不安になったりする。

しかし、論理とは、本質的にはすべての可能性を考えつくすという単純な作業なのだ。すべての可能性を考えて決断したのなら、その決断は信頼の置けるものだ。たとえば、箱の中の玉の色が、赤か白だけだと分かっていたとする。その場合考えられる可能性は玉の色が赤か、白かの二通りしかないので、玉の色が赤でなければ、それが白であることは確実だ。

しかし、実際には、すべての可能性を考えつくすには選択肢が無限に多くなるので、起こりえない可能性については、枝狩りをしなくてはならない。その枝狩りの過程で、見落としが発生して、一見論理的に組み立てられたように見える議論が、完全に間違っていたという現象がおきる。たとえば、次のようなクイズがある。

荷車を前と後ろで協力して動かしていた二人がいた。前の人に大変ですねといったら、「後ろで息子が押してくれるので助かります。」と答えた。そこで、後ろの息子に「お父さんの手伝いをして偉いですねというと、「いえ、あのひとは私の父ではありません。」と答えた。なぜだろう。

答えは、前で荷車を引いていたのはお母さんだったのだが、これも、起こりえる可能性をすべて考えていないためにおきる錯覚だ。

すべての可能性を考えつくすという観点から論理というものを考えると、論理は十分に信頼の置けるものなのだ。理屈っぽい人の話が当てにならないのは、単にその話が非論理的であるからに過ぎない。

また、冒頭のラッセルのパラドックスやゲーデルの不完全性定理のようなものは、記号で論理体系を組み立てるときにどうしても自己言及命題というものが入ってきて、その命題には論理法則が適用できなくなるのが原因ではないだろうか。つまり、論理の法則というよりは、集合を内包的に定義するときの記号の性質が問題で、論理法則そのものに矛盾があるというわけではないと思っている。

このように、論理の本質とはすべての可能性を考えつくすということだから、複雑な推論を重ねて導き出した結論は、常に、この「すべての可能性を考えつくしたか」という真実の鏡に照らして見なければならない。
[PR]
by tnomura9 | 2007-02-12 19:03 | 考えるということ | Comments(0)

気の進まない講演会の聴き方

昨日は午後7時から10時まで、研修の講演会があった。気が進まなかったが、義務なのでしょうがない。行き道、車の中で、なんとか苦痛をしのぐ方法がないか考えた。

そこで、思いついたのが、講演の内容ではなくて、構成や構造を見てみようということだ。講演の内容には興味がなくても、その講演がどんな組み立てで情報を伝えようとしているか考えてみるのは面白かった。また、講演がわかりにくい場合も、なぜ、その講演がわかりにくいのか、自分ならどういう風に伝えるかなどと考えていたら、ずいぶん気分が楽だった。

副産物もあって、これまで、なんでこんなものを書かなければならないのだと愚痴をこぼしていた文書が、結構考えて作ってあるのがわかって感心したりした。

興味のない講演に強制されていくのはつらいものだが、こういう参加の仕方なら、ただ眠るよりは面白いかもしれないと思った。
[PR]
by tnomura9 | 2007-02-10 13:23 | 考えるということ | Comments(0)

なぜ

アメリカの大学の授業では、毎回、始めか終わりに「クイズ」と呼ばれる5~10問の小テストがあるそうだ。

参考書を読んだ後、自問自答してどれくらい内容を理解したか確かめるのはよい方法だ。しかし、問題がある。質問自体をなかなか思いつかないのだ。

そんなときは、とりあえず、「なぜ」という質問をするとよい。文章を読んだ後、主題くらいは覚えているだろうから、まず、この主題について「なぜ」この文章が書かれたのだろうと考えるのだ。最初の質問を思いつけば、後は、芋づる式に質問を思いつくことが多い。

すべての質問を「なぜ」で起こしてしまうのは無理で、ときには、「何?」のような5W1Hの質問をしたほうがよい場合もある。しかし、何も質問が浮かばないとき、とにかく「なぜ」で始めてみるとよい。
[PR]
by tnomura9 | 2007-02-09 06:54 | 考えるということ | Comments(0)