スキップしてメイン コンテンツに移動

「情報処理」の根本に立ち戻る

今日和。
またまた御無沙汰しております。
如何お過ごしでしょうか。
わたしが住む地域は比較的、好い陽気が続いており、ありがたく思っています。
初老も迎えた小生、とてもとても「不惑」に達したなどとは云えず、いろいろと物思う日々を送っている次第です。

先日から何冊か、結城 浩 氏の著作を読んだり読み直したりしておりました。
学生時代から雑誌連載を通じてお世話になってきた、私淑の師のひとりです。
今回は『文章作法』や『デザ・パタ本』を読んだのですが、そこで語られている内容そのものより、その背後にある《暗黙の前提》が気になりました。

たとえば『文章作法』は執筆術です。
ですが、それは「書いてあること」をどのように読み取るか/読み取らせるか、の《読解術》であるように感得されました。

『デザイン・パターン』はプログラミングするときの処理の類型です。
ですが、こちらも「プログラム」に留まらず、取得した情報をどのように加工して望みの結果を得るか、という《情報処理術》に見えました。


そもそも《情報処理》とはなんであるか?
現行のパラダイムでは

  • 「入力された情報を、なんらかのアルゴリズムによって処理して、計算結果を出力する」

ということになります。大学で「情報科学」や「情報工学」と銘打った授業は多数ありますが、それらの分野を、たんなる「コンピューターの使い方」として受け取るのは、非常に勿体ない気がするのです。

むしろ、情報処理とは、人間の生存・生産活動において必須の、重要なプロセスについての【抽象化ではないかと。

書店に出かけると『アルゴリズムとデータ構造事典』みたいな本を売っています。
あれを単なるレシピ集としてだけ読むのは損だと思うのです。そうではなく、あれはもっと応用範囲のひろい、『「仕事のやり方」の虎の巻』ではないかと。現実の人生や仕事で直面する諸問題を、いかに《モデル化》し、それを一定の手続きのもと処理し、望みの結果を得るか、というのは、単に「情報処理」だけのパラダイムではなく、『作業』そのもののパラダイムなのだと痛感するようになりました。


だって、もともと「情報処理」は現実に存在する諸問題を、抽象的にモデル化して、処理して解決するために生まれてきた学問なのですから。

だから『分割統治法』のような、大きな問題をちいさな問題に分割して、個別に、あるいは部分的にでも解決できないかどうか試す、というのは、現実の問題についても非常に有効なのです。

きょうはこれ以上詳しく書くことを止めますが、斯様な次第で「いま自分がなんのために、なにを、どのように学習しようとしているのか」というメタ認知は、とても重要である、と得心したのです。これからはこのような「自らの学びに対する【地図】」に注意しながら学問を続けたいと思ってます。

コメント

このブログの人気の投稿

過ちては則ち改むるに憚ること勿れ

今晩和。 実は、こどもプログラミング教室に関わりはじめました。 そこで Scratch 言語についての見解を改めねば、と思ったのです。 実際に Scratch に触って、そのブロック構造を組み合わせたプログラミングを体験してみると、多角形や角丸長方形などを使い分けたシンボリックなブロック群が、そのまま処理構造の可能性を暗示していて、かなりオモシロくプログラミングを学習できるのです。 それと、ある程度の範囲でコーディングできるだけのブロックは整備されているので、モンテカルロ法のシミュレーションや、フラクタル図形の描画など、それなりにテクニカルなことはできてしまうのです。もちろん、ちいさい子供たちの多くは、思いおもいにゲームや便利ツールを作るのですがね。 システム開発はある程度、処理系依存の部分が大きい、とはいまだに感じてますが、それでも Scratch は非常にオモシロい学習用プログラミング言語で、その可能性はかなり広い範囲に及んでいる、と考えを変えました。 それにしても、こどもの面倒を見るって興味深いことですね。

あたらしい道具

今晩和。 またまた御無沙汰しております。 きょうは、大変おもしろい『道具』に出逢ったので、その御紹介を。 その道具とは “TensorBoard” です。 詳しくは、以下のリンクのページを熟読なさってください。 https://yag-ays.github.io/project/embedding-visualization/ この分析ツールを使ってみるために、国連の『世界人権宣言』を mecab で分かち書きにしてから word2vec に通してみました。 わたしは門外漢なので、あまりよく分かっていませんが、要はこれ、主成分分析(PCA)ですね。いや、オプションで t-SNE という「学習」にも切り替えられますが。 なんで、こんなツールを探し出して使ってみたかというと、実は仕事上の必要から、大量の文献の調査をしているのです。ところがアタマがパンクしそうになるくらい大量で困っていたのでした。そこで、要領よく文献を精査するために、キーワード検索を多用しようか、と云う段階になりました。 そうすると、とあるキーワードに「距離的に近い」別のキーワード群を知りたいと思ったのです。そこでネットを散策していたら上記のページに行き当たり。 上記の例では、対象が『世界人権宣言』ですので、まあ、ドキュメントの量としても短いし、出てくる単語の語彙も限られていて、いわゆる予想どおりの結果になっております。 ですが、これを不特定多数のドキュメント群に対して施したときに、どうなるか? まだ、わたしには分かりません。 ですが、確かな手応えを感じています。 こんなツールが、ちょっと環境を整えるだけで使える時代。 ああ、ほんとうに良くなりました。 感謝深甚です。 追記: 手持ちの参考文献をすべて .txt にして、TensorBoard で可視化してみました。 これはスゴい! 便利です。

「子供向き」には留まらない想像力

今晩和。 実は Scratch で細々とした作例を積み重ねています。 どうですか、これは? https://scratch.mit.edu/projects/284763417 これは惑星軌道(今回は地球と金星)のあいだに線分を描画しつづけたときにできる『軌跡』です。惑星半径や公転周期などは『理科年表』を参考にしました。有効数字(数値としての具体性)を 5 桁ぐらいにしたら、こんな綺麗な模様ができました。桁数を下げると、また、似て非なる模様になります。 「子供用」とされているプログラミング環境でも、発想次第でいろんなことができる。 自戒とするところです。