しんさんのブログ

科学や技術のこと読書のことなど

「ディープラーニング学習する機械」 Yann LeCun 著, 松尾豊 監訳/小川浩一 訳 を読みました。

読んでいていワクワクドキドキしてモチベーションの上がる本でした。
機械学習やAIに携わる研究者やエンジニア、学生にもおすすめです。
分厚いですが読み始めるとあっという間で、面白くて止まることなく最後まで一気に読んでしまいました。
ただし、前半部分のニューラルネットワークの説明や発展のところは前提知識がないと何を言っているのかわからなくて読みずらいかもしれません。
細かいところは理解できなくても、後半のAI研究の現状と未来の部分は楽しめると思います。

幾度かのAI冬の時代を乗り越えた歴史とブレークスルー

動物の視覚野に関する知見をヒントに、NHKの福島さんがコグニトロンを開発し、それに触発されConvNetに至った歴史を失敗した試みも含め著者の職歴と絡めながら紹介しています。
ちなみに今では当たり前に使われている畳み込みニューラルネットワークの知識が逆に脳の視覚野の働きの研究に影響を与えているそうです。
ConvNetだけでなく、Deep Learningに必須の技術である誤差逆伝搬法や確率的勾配降下法など今では常識となっている手法にしても、ストレートにゴールにたどり着けたわけではなく現場では紆余曲折を経て今の形に収束したことが分かります。
例えば、多層ニューラルネットの各レイヤーの関数を合成した合成関数をチェインルールにより偏微分を掛け合わせた形に書けた結果だけを見ると、なんでこんな簡単なことにすんなりたどり着けなかったのか不思議ですが、当時考えられていたことや限られたリソースの中で奮闘して試行錯誤したことを知ると技術とはこうやって少しずつ進歩していくものなんだなとわかります。
このような初期の人工知能から現在の深層学習までを俯瞰的にそしてその現場では実際にどのようなことが起き、技術者や研究者はそこで何を考えていたのかを詳細に知ることができる貴重な本です。
著者は研究開発の現場で常に手と頭を動かし、基礎研究から郵便番号読み取り装置のような応用まで携わってきたからこのような本が書けたのでしょうね。

著者が一番言いたかったこととAIの未来

この本で一番面白いのは後半のFacebookでの著者の仕事とFacebookのサービスにおけるAIの利用の話、そして9章及び10章のAIの未来と課題を述べたところです。
特に9,10章は私も同じようなことをぼんやり考えていたのですが、それを言語化してくれていて自分の考えもよりクリアになりました。
人間は機械学習のようにたくさんの学習データも必要ないですし、可能な潜在空間のなかのごく一部しか探索しません。 その理由として、世界モデルの必要性を強調しています。
そして著者はこの世界モデルが因果関係を識別できなければいけないと主張しています。
そうすれば、統計的な規則性に基づく現象学的モデルから、還元主義的な科学にもAIが使えるようになり、AIの使用範囲は大きく広がり、人の知能と変わらない機能を持つかもしれないです。
そして同時に、AIが人間を支配するといった議論に対してはごく常識的な反論を持って一蹴しています。
そういうルカンさんの技術に対するバランス感覚や誠実さに非常に好感を持てますし、本書のいたるところからそういうルカンさんの考え方がにじみ出てきます。

10-8節の脳は機械にすぎないのか?という疑問に対してルカンさんはYesと書いているが、私も脳が物質でできているので全く同意できます。   人間は物質でできており、その物質の化学的、電気的なプロセスにより思考や行動を起こしているのだから、逆にいえば物質を使って人間と同じように思考するシステムを作ったり、人間の脳の思考メカニズムを複製することは可能だという著者の考えには全面的に同意します。
意識とは世界モデルを再設定するための機能で、少ないニューロンを効率的に一つの世界モデルとして稼働させるための仕組みであり、創発的に生じる知能の必然的な帰結であるとはっきりと言い切るゆるぎない信念が、ここまで著者を研究にのめりこませた原動力なのだと感じました。
人間の脳は確かに驚異的ですが、それは物質でできた機械だと多くの科学者は考えています、だからこそ感情や意識を持った機械を作れるに違いないと考えることはごく自然なことですし、著者もそれを目指して研究を進めているようです。

猫ほどの良識も世界モデルも持たない現代のAIをあたかも万能の夢の技術のように語るのではなく、ルカンさんのように自分の手を使いアルゴリズムアーキテクチャを実装しながら理解を深めていくことが極めて重要だと分かりますし、研究所の所長よりは現場で研究開発しその謎を解明している作業を続けたいという著者の気持ちはよくわかります。

AIの現状は、まだ単なる発明の段階で、科学の領域にまで高まっていないという趣旨のことが書かれています。
知能の根底にひそむメカニズムや原理の発見に至ればAI研究は科学となるでしょうし、その時こそ本当の意味でのAI革命が起きるときに違いないです。
そんなことが起きる遠い未来を想像しながら本書を読み終えました。

「数学に魅せられて、科学を見失う」ザビーネ・ホッセンフェルダー (著), 吉田 三知世 (翻訳) を読みました。

基礎科学の現状に対する危機感

現代物理学はかれこれ30年以上、基盤となっている部分を発展させられずにいると著者は主張しています。
LHCなどの超巨大な加速器を用いても、素粒子理論の基本となっている標準理論を超えるような発見はできていません。
しかも、この標準理論はこの宇宙を説明する根本理論としては満足できるものではないということに関しては、ほとんどの科学者が合意しています。

現代物理学を進歩させる基本原理はなにか?

著者によると明確に新しい実験結果が出てこない現状で、物理学者たちは理論の美しさや単純さ自然さ、エレガントさを評価基準にしているのではないかと主張しています。
これは、まさに地動説において天体の運動が円でなければならないと考えたときと同じことを現代の最先端の物理学でもやっているのではないかという批判です。
科学とは本来、数学的美しさとかエレガントさで評価されるのではなく実験事実を正しく説明できるかや自然を正しく記述できるかが基準のはずなのに、美しさとか持ち出すのは危険なのではないかという批判をしています。

量子力学相対性理論

量子力学はミクロの世界の現象を説明するために生み出されたものであり、その意味では著者の言う科学的なプロセスによって構築されました。
しかしその理論は直感とかけ離れており、波動関数の解釈や観測問題などおよそエレガントとは言えないような理解不可能という問題を抱えています。
一方の相対性理論幾何学的に記述された美しさを持ち、しかもしかも現象を予言しそれが実際に観測されるという素晴らしい成果をあげました。
後者のようなプロセスを現代の理論物理学者も志向しているが、標準理論を超える超対称性粒子の発見には高いエネルギーが必要でその兆候を示すような実験結果は探せど探せど全く出てきていません。

大統一理論超弦理論、ループする時空、量子力学相対性理論の統一

標準理論を構成するゲージ場の理論を超えるような多くの理論が生み出されているがそれらはどれも実験による検証が不可能であったり困難です。
にも拘わらず、物理学者は検証が不可能なことをあたかも科学のように議論しているがそれは健全な姿だろうかと著者は述べています。
しかもこのような構造が生じた背景には、研究者の増加と非正規雇用研究者の増加、論文至上主義、短期成果が期待され競争資金の取り合いという構造があると指摘しています。
上記のような構造のために、科学者の多様性が失われ一部の"人気"がある理論があたかも正しいかもしれないと皆が思い込む状態に陥ってしまっているのではないかと危惧しています。

誰が本書を読むべきか

このような内容の本を書くことは結構勇気がいることだなと思います。
特に素粒子理論のような研究者コミュニティーが比較的小さく密に結合している業界では、本書のような批判をするとコミュニティーに居づらくなる可能性があります。
実際に著者は、雑誌への投稿などで抵抗を受けたとも書いています。
日本ではよく基礎研究にたいして何の役に立つのかというような疑問や批判がされますが、いまの基礎研究は内部にそれどころではない科学として根本的に危ういものをはらんでいるということが分かります。
科学に携わる人、科学予算を決定する政策立案者、そして現代物理学の行き詰まりの状況を知りたい方に本書をお勧めします。

最も印象に残った文章

私が本書で最も印象に残った一節を引用します。
「いまは神経科学か、バイオエンジニアリング、あるいは人工知能の世紀であるように見えるかもしれない。私は、それは間違っていると思う。(中略)物理学の次のブレイクスルーは、今世紀に起こるだろう。それは美しいだろう。」
この一文に、完全に同意しますし、標準理論を超える物理学、量子論相対性理論が融合した新しい物理学は人類に現代のコンピュータやAIの技術がおもちゃのように思えるような革新的な技術をもたらしてくれるだろうと思います。
そこまで到達するには数百年かかるかもしれませんが、その時を楽しみに想像しながら本書を読み終えました。

「妄想する頭思考する手 想像を超えるアイデアのつくり方」 暦本純一著を読みました。

イノベーションとはどのように生まれるのかそれが知りたくて読みました。

著者は"何か新しいことを考えなければいけない","どうすれば新しいアイデアが思い浮かぶのだろうか"というイノベーションをめぐる雰囲気に強い違和感を抱いて本書を書いたそうです。
企業の研究開発の現場では、極端な成果主義や結果重視のため上記のような雰囲気から却って閉塞感が漂っているようにも感じます。
人間という生き物は本来は、新しいものや未知のものを好む特性を持っているはずだです。
著者は、そういう人の持つ特性をうまく引き出すために普段考えていたり実行していることをとを本書で披露しています。

特にわかりやすかったのは、アイデアの天使度、悪魔度という指標です。
悪魔度とは技術の高さのことで、天使度とは発想の大胆さのことをわかりやすい言葉で表しているそうです。
この二つがそろう所が最も破壊力のあるイノベーションとなる場所でだそうです。

しかし、それは選択と集中のように狙って成し遂げられるものではなく、最初はなんなのかよく理解できない、聞いたとききょとんとするようなアイデアを実装し使っていく中で洗練されていくものだと著者は述べています。

イデアが思いついたらまずは言語化し、そして粗削りでも実装して使いながら改良していくことが良いようです。

そして日本人の大好きなブレストはイノベーションにとっては何の意味もないのでやめた方がいいと強く主張しているのは、私も賛成です。
数々のブレストと呼ばれる会議にでたことがあるがそこから素晴らしいイノベーションは生まれたためしがないですし、角の取れた丸いアイデアしか出てこないという著者の意見に同意します。
では、どうすればよいか、そのための一つの提案も本書に書かれています。

研究開発に携わる人にお勧めです

妄想し思考し、そしてとにかくいろいろ実装して試行錯誤しながら思いがけないアイデアに結び付けていくという著者の研究開発のプロセスを知ることのできる良書です。

Windows11でWSL linux上でのCUDAの設定メモ

Windows11でWSL上のUbuntuにCUDAを設定したときのメモです

1) Ubuntu 20.4 LTSをWindowsアプリストアからインストール
2) Windows側でCUDA for WSLのGPUドライバをインストール
3) Ubuntu側でCUDAをインストール
以下のサイトから適切なパッケージを選択し
https://developer.nvidia.com/cuda-zone
Installerに従ってインストールする
今回は、CUDA 11.6をインストール

/usr/local/cuda-11.6/bin/nvcc -V

で正しくバージョンが表示されればインストール成功

pathをつなぐために、.profileに
export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}}
を追加
4) Ubuntu上の各種ツールインストール
このページに従って
https://docs.microsoft.com/ja-jp/windows/wsl/tutorials/gui-apps
Gedit、GIMPVLCをインストール
Linux 向け Google Chromeもインストール
5) Anacondaのインストール
以下のサイトからインストール用shをダウンロード
https://www.anaconda.com/products/individual
途中で、yes/noと聞かれるところがあるので適宜入力する。
UbuntuをリスタートするとAnaconda環境が使用できるようになる。
6) cuDNNのインストール
以下のNVIDIAサイトを参照しながらcuDNNをインストールする
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html

  • WSL2上のLinuxにDockerをインストール
    上記の手順は佐々木さんの記事を参考に実行しました。
    CUDA on WSLに関しては実際は佐々木さんの記事の通りではなく、Nvidiaの以下のサイトの手順に従ってインストールしました。 CUDA Toolkit 11.6 Update 1 Downloads | NVIDIA Developer

qiita.com

また次のページの情報も役に立ちます
WSL2 上の Ubuntu での NVIDIA CUDA ツールキット, NVIDIA cuDNN, PyTorch, TensorFlow 2.7 のインストールと動作確認(Windows 上)

TensforlowのGPU版が動かないときは以下のサイトを参照 WSL2 + Ubuntu20.04 + CUDA 11.4 で TensorFlow 環境構築 (2021.08)

Google-Chromeのインストールや他のLinux on WSL2のアプリの設定は以下のブログを参考にしました。

docs.microsoft.com

WSL2のCUDAに関するNVIDIA公式ドキュメント

https://docs.nvidia.com/cuda/wsl-user-guide/index.html#getting-started

その他参考になるサイト

Windows10,11のタスクマネジャーでGPUのパフォーマンスを表示したときCudaやComputeが見えないときの対処法

f:id:wshinya:20220210152153p:plain
GPUのパフォーマンス

タスクマネジャーでGPUのパフォーマンスを見ると上のように見えます。
パフォーマンスを表示したときCudaやComputeが見えていますが、Windowsの設定によってはこのメニューでCudaやComputeが見えないことがあります。
その時には、
ディスプレー設定->グラフィックの設定->ハードウェアアクセラレータによるGPUスケジューリング
で設定をオフにすると解決するようです。
f:id:wshinya:20220210162736p:plain

便利な素材集へのリンク

何かと使えそうなイラストや写真などのフリーで使える便利な素材集のリンクです

ドット絵

dotown.maeda-design-room.net

プログラミング教育用素材

「Python ゼロからはじめるプログラミング」サポートページ