2017年、9月1日に近代科学社から発売されました本です。
ぜひ、一読してください。
2017年、9月1日に近代科学社から発売されました本です。
ぜひ、一読してください。
プログラムの経験はありますか?
PASCAL
PHP
Python
BASIC
Java
HTML
JavaScript
COBOL
FORTRAN
これらのプログラミング言語は、私たちが読んだり書いたりしゃべったりしている日常語(自然言語)と違う目的で作られたものです。
しかし、生成AIがさかんになった今、日常語を使うだけでコンピュータから答えが返ってくる
という時代になると、日常語がプログラミング言語であってもかまわない、と考える人が出てきそうです。
また、日常語でコンピュータに指示している
という錯覚が生まれます。
もっと、すすんで、コンピュータが日常語を理解している
という錯覚も持つことになります。
そこまで、飛躍する前に、ここで、ちょっとコンピュータが生まれはじめたころの過去にさかのぼってみます。
チューリングという数学者が、パスカル(パスカルの原理でも有名な17世紀の科学者)が発明したとも言われている万能機械を数学的に定義しようとしました。機械の中にプログラムを入れれば、その機械は専用機械ではなく、
いろんな機能を持つ万能機械になりうる、というパスカルのアイディアです。
チューリングは、数学者ですから、数学的にこのアイディアを定義しようと考えました。
参考の部の図を見てください。
データ(プログラムもデータの一部)を一次元のテープメモリの中に保存する。データは、シンボル(記号)の集まりです。
メモリーからデータを取り出すヘッド(左右に自由に移動できる)と取り出したデータを加工する制御部(演算部、CPU)を持つ。
という簡単な仮想装置を考えました。
単純化して証明可能な形にすることが数学原理ですから、これが最小限の必要な要素として定義しています。
人間の頭の中の最小機能もこれと同じだと考えられます。
人間の思考過程は同様にシンボルシステムだからです。
そういえば、私が経験した1970年代に存在した大型コンピュータへのデータ入力は、紙テープで、長期保存できるデバイスは磁気テープ装置そして、コンピュータ内部の短期的メモリは、小さなもので64Kバイト程度(1 Symbol=1Byte)だったのですから、ほぼ、チューリングの原理そのものを想像してプログラミングをするわけです。
メモリーにあるデータの位置(アドレス)を知って、それを読みだして簡単な演算をすることをシンボルの集合として組み合わせてプログラムを作るのです。
その当時は、研究室の大型コンピュータではすでにあったFORTRANやCOBOLがつかえないし、機能が限られているので、アセンブラ(ASM)とよばれるチューリングレベルの言語で記述していきます。そして、プログラムは、シンボルの集まりとしてデータと同等とみなされていて、紙テープに穴をあけて記述したものを読み込むという作業をやっていました。しかし、当時もそんなプログラミングでもスーパープログラマが研究室にいて、ひとりはその後CMU(米国カーネギーメロン大学)に留学し、世界的なロボット・画像処理の科学者となった金出先生、もう一人は、NLPおよび機械翻訳のパイオニアで日本の人工知能研究所元所長の辻井先生です。どちらも紙テープの穴を読みながらの高速のデバック(バグを取り作業)できるプログラマだったのです。
米国では人間が初めて月に足をおろしたころです。
大型コンピュータを使って多くのプログラムがあって実現できた、と言われています。その時に使われたプログラミング言語がFORTRAN(科学計算用)です。アセンブラよりハイレベルのプログラミング言語(HLP))でした。
普通の人間でも読めるハイレベルのプログラミング言語(HLP)が誕生したことによりプログラム・ソフトウエアの発展があったのです。HLPがあってもコンピュータの中では、ASM、その下のレベルの機械語でしか動作しないことには変わらないので、メモリー制約、高速、セキュリティをめざすプログラム開発では今でもASMが使われています。
ここで、HLPにもどりましょう。
HLPはそのままではコンピュータは動作できないので、機械語まで変換する必要があります。
そのプロセスは、コンパイラと呼ばれるものですがその詳細は後日に説明します。
HLPと日常語の違いは、
日常語の文法は、数学的な記述ができたとしても、例外事項が多すぎます。HLPは例外事項をなくして数学的な文法で定義できるように設計します。BNF(Backus Normal Form)はそのために考え出されたメタ言語です。HLPの文法は、CFG(文脈自由文法)と呼ばれて分析のためのプログラム開発が可能になります。
特にPASCALはエラーの少ないプログラムをめざすことに重点をおく強力な言語でありパソコンの普及とともにパソコンでも動作するコンパイラを備えた本格的な言語として人気の高いものでした。
なぜなら、正確な文法体系と整合性の取れた言語であり、かつコンパイラ自身もPASCAL言語で開発できるという特徴を持っていたからです。
HLPを設計するときもまず文法を数学的に定義すること(BNFで定義)から始まります。
それがないと、HLPの実行環境を正確に開発することができません。なぜなら、仕様が誰でも理解できる共通の言語(数学)で書かれていることが要求されるからです。開発したコンパイラがバグがあるかないかのテストすらできないからです。
PACALの文法例とプログラム例は次回に説明します。
プログラムはコンピュータで動作できるように指示するための言語で成り立っているので、
数学的に定義できるチューリングマシン上で動作するためには、PASCALのような数学的な定義の可能なHLP言語が要求されていました。
プログラムが正しい
と言えるための判定が可能であることがもっとも重視された時代の到来です。それは今日も変わりません。さもなければ、飛行機も宇宙船も自動車も安心してのれません。
まず、コンパイラの仕事は、プログラムが、文法的に正しいかどうかを判定することからはじまります。しかし、文法的に正しいと判定されても、プログラムが正しい、ということにはなりません。
HLPが開発されて、はじめて、プログラマはそのHLPを使ってプログラムを開発できるのですが、
もし、HLPのコンパイラにバグ、エラーがあり、プログラマが想定する機能に不具合があれば、社会的な問題を起こします。
プログラムは、現代では、私たちの生活にかかせないものであるばかりではなく、社会・経済・政治・科学のすべてに存在し利用されるものです。
したがって、想定しない動作や誤った動作、あるいは意図的に破壊する動作、などを引き起こすことがあれば大変です。しかし、
プログラムがエラーなく正しく動作する
という証明はほぼ不可能であり、テストをくりかえして暫定的に正しい
という判断しかできないのです。大きなソフトウエアでは、開発時にエラーのある確率を予測しその値が小さければリリースするということがなされています。
人間だと良心、法律、道徳などで守られている行為も、プログラムには、人間には存在する歯止めのようなものがなく、動作します。
それを理解することも、このプログラミング学習の重要な目的です。
今のAIブームの背景にある、プログラミングに対する誤解と過信は、これからの世代に大きな負の資産を残しかねません。
どのプログラムであっても、論理的思考(数学的)で成り立つものであり、それにより作成されるプログラムが正しいという検証を数学的な証明方法で行おうとする動きが80年代にDOD(米国国防省)の研究機関といっしょに大学の研究プロジェクトとして発足しました。国防に使われるコンピュータのOSの正しさを検証するための仕様記述の言語が設計されその数学的証明を試みられた。限定されたプログラムしか検証できない、という結果で今は下火になっていますが研究は継続されています。
大きな規模のプログラムは数学的な証明方法では現実的ではないため、いろんな経験則的なテスト手法で検証が行われていますが、完ぺきではないために、最終的には人間が責任をもってするものであり、未知な部分をできるだけユーザに伝える責任があります。
自動車の自動運転もプログラムであり、エラーがないという保証はできません。したがって、事故の可能性も確率的手法で説明されていますが、先日も踏切で止まらずに大事故になるかけた、というニュースが米国でありました。
また、今の生成AIが生成されたものをどのように検証するのか、という研究もこれからであり、難問だと想像されます。
次回は、簡単なプログラミング例を紹介し、プログラミングの楽しさを味わっていただきます。
(1)数字列を大きいものから小さいものへ並べ替えるソートのプログラム
数字の数が、膨大になればプログラムによって計算時間が指数的に増えます。
(2)ソートされた数字列の中から、指定する数字の位置を見つける検索のプログラム

以下は、近代科学社から出版されています。私が翻訳あるいは執筆した本です。
ソフトウエアテストの技法
PythonプログラミングABC
チューリングマシンについてのURL
https://plato.stanford.edu/entries/turing-machine/#DefiTuriMach
数学的証明の例のURL
https://rocq-prover.org/
カテゴリー: Uncategorized
本の紹介、18日付の本欄に載りました。添付です。下記サイトは電子版での紹介(紙と同一文)です。
https://www.nikkan.co.jp/articles/view/00454665
日刊工業新聞
中村 悦二
カテゴリー: Uncategorized
さて、このごろこの詩にいたく感動しています詩を
お届けします。既にご存知かもしれません。
金子みすずさんの詩です。
不思議
私は不思議でたまらない、
黒い雲からふる雨が、
銀にひかっていることが。
私は不思議でたまらない、
青い桑の葉食べてゐる、
蚕が白くなることが。
私は不思議でたまらない、
たれもいぢらぬ夕顔が、
ひとりでぱらりと開くのが。
私は不思議でたまらない、
誰にきいても笑つてて、
あたりまへだ、といふことが。
当たり前の中に、不思議を見つけられることが
大きな幸せにつながります。
日常の生活の中にも、不思議は一杯ある
それに感動できることが、マインドフルなのだと
思っています。
自分の力で生きているのではなく、皆様のおかげで
生かされているのだと、分かってくるのです。
安居院
カテゴリー: Uncategorized
「マインドフルネス」という瞑想に参加しました H29.12 寺岡産業医講話
組織があるところストレスあり。仕事上のストレスからうつ病で亡くなる人、休業する人は後を絶ちません。この社会的な損失を何とかしようと昨年から始まったのがストレスチェックテストです。対象企業の85%以上が参加し制度としては順調な滑り出しといえますが、問題ありとされた方の0.6%しか産業医に相談されようとしないなど、まだまだ問題点はありそうです。これで業務改善の方向へ動いてくれればよいことですが・・・・。
ところで世界ではこれとは違った方法でストレスを低減しようと、大きな動きがアメリカ、ヨーロッパ中心に起こっています。どんなことをするのかというと、日本人にもなじみの深い「瞑想」なのです。「マインドフルネス」と名づけられたこの瞑想法、阪大でおこなわれたセミナーに参加して来ました。日本のAI研究の第一人者や、教授、学識経験者と大学院生などを対象におこなわれた格調高いセミナーでした。感想も交えながらご披露させていただきます。
瞑想のもともとの起源はインド仏教です。日本ではその一派が「禅宗」として伝わっています。宗教色を出来るだけ除いて「瞑想」だけを取り入れ、万人が参加できるよう欧米で工夫されたのが「マインドフルネス」というわけです。大まかなことだけを言うと、静かに目を閉じ、ゆっくり呼吸をし続けるのです。全身の力を抜き自分の呼吸に集中します。雑念が湧いてきたときには深入りせず離れてゆきます。そしてまた呼吸に集中します。これを延々繰り返すのです。時間は様々ですが、その間、五感を研ぎ澄まし、身体と自分の周りの現象に感覚を集中します。やってみると確かに脳が洗われたような感じがあり、視野が広くなる印象があります。まわりの現象がフレッシュに感じられます。いろんなバリエーションがあって、立ってする瞑想、歩きながらの瞑想などもあるのです。時間も様々です。この辺が日本の座禅とちがって、西洋らしい分かりやすさと広がりを感じます。
最近、この瞑想には医学的な効果があることが分かって来ました。人間は厳しいストレスをうけると副腎からコーチゾルというホルモン(いわゆるステロイド)を分泌させて炎症やストレスを緩和する重要な働きがありますが、これがいつまでも出続けると脳の海馬という記憶をつかさどる部分の神経線維を萎縮させてしまいます。海馬の萎縮の最たるものがアルツハイマー病です。その近くに扁桃体という塊がありますが、ここは恐怖、怒り、不安を感じる中枢で、うつ病の人では扁桃体の肥大が特徴です。8週間の瞑想プログラムでうつ病の30%の人が治るそうですが、ハーバード大のラザード教授は瞑想でうつ病が改善したとき、海馬の神経線維が増え、扁桃体が小さくなることを発見しました。瞑想は脳の構造さえ変えることが出来るのです。ひょっとすると認知症の予防にも効果があるかも知れません。そのほかにも肥満、ガン、動脈硬化と関係の深い、慢性炎症を引き起こすR1PK2遺伝子の抑制をすることも分かってきて、さまざまな病気を予防する可能性がありそうだということも分かって来ました。
このような効果に着目し「マインドフルネス」を会社の行事として実践している企業が欧米ではどんどん増えています。フォード、グーグルなど名だたる企業でも、学校、幼稚園、刑務所でもおこなわれており、タイガーウッズ、マイケル・ジョーダン、テニスのジョコビッチら超一流のアスリートたちも「マインドフルネス」に取り組んでいるそうです。UCL A、ハーバード大学など全米の大学では専門講座が設けられていて、「マインドフルネス」の研究実践がおこなわれています。主要な都市にはマインドフルネスのためのいくつもの
協会が並存しています。こうなるともう社会現象といえます。
思えばアップルのスティーブ・ジョブスは禅に傾倒し、“Stay foolish”と言いました。日本人には「無になれ。」と理解できます。マイクロソフトのビルゲイツも禅の作務衣で働いているそうです。私をマインドフルネスの合宿に誘ってくれた親友もUCLAを出てアメリカで成功したプログラマーの一人です。
このよう動きは単なるファッションではなく深い意義があるのだと思います。「マインドフルネス」は緻密な作業を長時間求められる彼らに①安らぎをもたらし、②集中力を高めてくれる効果が科学的に明らかだから、こんなに受け入れられているのです。ようやく日本でもYahooなど、「マインドフルネス」を取り入れるところが現れはじめ、企業の幹部研修にも採用され始めたようですが、今後どんどん普及していきそうな勢いです。
時代の最先端の人たちが座禅・瞑想をしている姿は、洋の東西、科学と宗教、物と心の融合を見るようで、未来的でありcoolな情景ですね。
カテゴリー: Uncategorized