こんな短歌聞いたことありますか?
菜の花や染みふと入りば止まりにし心常忘らえず面影
現代語訳:菜の花よ、その花のように美しく染められた着物がふと目に入ると、心の奥底にあって常に忘れられない、あなたの美しい面影が思い浮かんで、心臓の鼓動が止まってしまうかのように胸が苦しくなるよ。
令和の由来にもなった万葉集(7-8世紀)調の短歌ですが、実はこんなものは存在しません。これは、アンチ松尾芭蕉スタイルで万葉集大好きだった正岡子規が高く評価していた、与謝蕪村(1716-1784年)の有名な俳句、“菜の花や月は東に日は西に”、の初句、“菜の花や”、を使ってAI(人工知能)が詠んだ短歌です。アナキンが、ナブーでパドメと過ごした日々(スターウォーズ:エピソード2)をふと思い出してしまった時の気持ちを詠んだ歌のようで趣ありまくりですよね!
今やこんななんちゃってAIが誰でも簡単につくれてしまうことからわかるように、AI(人口知能)とかMachine Learning(機械学習)とか呼ばれるテクノロジーは、近年様々な分野で注目を集めていて、宇宙工学も決して例外ではありません。というわけで、AIと宇宙工学の繋がりを、専門用語は使わずに、かんたんに紹介します。
1. AIの仕組み
AIとは“言語の理解や推論、問題解決などの知的行動を人間に代わってコンピューターに行わせる技術”(by Wikipedia)のことを指し、その仕組みはとてもシンプルです。
- データを使って知識・経験を蓄える
- データにないものを蓄えた知識・経験をもとに予想する
どんなものが (I)&(II)のステップに相当するのかを、かんたんな例で見てみましょう。
例)英語の勉強
人間が英語を勉強するとき、文法だったり、apple=りんご、grape=ぶどう、のようなたくさんの英語と日本語の対応関係だったりを覚えますよね。まずこれが(I)です。とはいえ、100万以上ある英単語を全て覚えるのは普通の人には無理なので、英語のテストではほとんど必ず知らない単語が出てきます。例えばomnivorousという単語が出てきたとしましょう。このとき人間は、自分がすでに学習していることに基づいて、1. 文法や前後の知っている単語を含む文章から、あるいは、2. omni(全ての)+vorous(〜食の)と接頭辞&接尾辞にわけて、omnivorous=雑食の、という意味を予想することができます!これが(II)です。
AIは、人間が扱えるよりもはるかに多くの情報、いわゆるビッグデータを使って、まさにこれと同じことをしています。つまり、大量のデータを使って知識や経験を蓄え、それに基づいて未知の事柄を知的に予想しているのがAIです。特にニューラルネットと呼ばれるものが使われることが多いです。
例)自転車の練習
自転車の乗り方を人間が学ぶときも同じように、何回も転んだりしながら、感覚的に、自分の今の体勢と、加えるべき力の方向&大きさの対応関係をたくさん学びます(I)。その経験が増えていくにつれ、今までになったことのない体勢でも、自分が加えるべき力の方向&大きさを感覚的に予測できて、転ぶことも少なくなっていきます(II)。
この学習過程もAIで実現できるものに含まれ、上で挙げたニューラルネットや、強化学習と呼ばれる手法が主流です。
例)AI万葉集
ここまできたらわかると思いますが、一番初めに載せた短歌も同じような仕組みを持ったAIによって詠まれたものです。まず、インターネット上にあふれている、万葉集の中の何千首とある短歌のデータに基づいて、前の文字列と次に来る文字列の対応関係を、各句の間のスペースも文字に含め、大量に学習させます(I)。この対応関係のわかりやすい例は枕詞で、
- あをによし → なら
- あしひきの → やま
のように、あをによし、ときたら次は必ず、奈良、が続くなどの規則性が万葉集の短歌には随所に見られます。他にも掛詞、倒置法、終助詞、各句の文字数(5-7-5-7-7)など、様々な規則性を持った短歌の特徴を大量のデータを用いて学習させるのですが、AIの面白いところは、設計者の人間が、枕詞はこういうもので、掛詞はこういうもので、、、という知識をわざわざ与えなくても勝手にそのような規則性を発見し、学習してくれるという点にあります(と言ってももちろん、それらを事前に与えたらより高性能なAIになりますよ!)。そしてその学習した知識に基づいて、万葉集に存在しない“菜の花や”という初句が来た時に、万葉集の歌人なら次にどんな文字を続けるかを予想するのです(II)。AIってすごいですよね!
とはいえ、データが大量にあっても、学習の時間が短かったりすると全然うまくいきません。例えば学習時間が数分だと
なのはなや しののもししし のものしも ししのもしのし もしのしのもし
こんなんになります。学習の時間が長くても、データが少ないとうまくいきません。例えば101首しかない百人一首をデータとして使うと
なのはなや らしらののゆき のふにれり あくのしのはも しのそころもは
短歌っぽいですけど意味はわからないですね。でもたくさんのデータ(3948首)を使って長い時間(1日ぐらい)学習すると、最初に載せた、
なのはなや しみふといりば とまりにし こころつねわす らえずおもかげ
という与謝蕪村の万葉集っぽい短歌を詠んでくれるようになります。また、はじめに与える文字列は本当になんでもよくて、例えば、最近JO1っていうアイドルにハマっているんですけど、初句を変えれば彼らのことも万葉集の自由律短歌っぽく詠んでくれます。
アイドルや 発ちし迷びく 嘆きぞ足掻する 別れ哀しみ
存在しない動詞もいくつかありますけど、なんとなく、101人の中から仲間たちを蹴落として11人に選ばれた、彼らの葛藤や苦悩と決意が表現されているようでまじで泣けますね!
Recurrent neural network (RNN)、Long short term memory (LSTM)、convolutional neural network (CNN) などなどでググるともっと詳細な説明が見つかると思います。
2. 宇宙工学との繋がり
で、いよいよ本題ですが、こういったAI、機械学習の技術は宇宙工学の分野でも盛んに取り入れられています。
僕が取り組んでいる研究は、宇宙機、人工衛星、ロボット等ハードウェアの“脳みそ”をつくるというものですが、そのためには、宇宙環境やその運動を支配する方程式、宇宙機の状態などなどを出来るだけ詳しくわかっている必要があります。しかし、それらは当然未知の部分が多いため、宇宙機には、今までに経験したことのない状態においても、蓄えた知識と経験に基づいて、人間のように自らの頭で考え、知的に最適な行動を予測することが求められます。そこでまさに、ここまで説明してきたAIの枠組みが使えるというわけです。
例えば、僕がちょっと前まで書いていた論文は、Contraction metrics(あるいはリアプノフ関数)という、見つけるのは難しいけど、それさえ見つかればどんなハードウェアの“脳みそ”も設計できてしまうという夢のようなツールを、Long short term memory (LSTM)というAIの技術を駆使して近似的に見つけちゃおう、というおもしろ研究テーマについてでした。これを使えば理論上は、宇宙機が今まで経験したことのない状態に陥っても、自分のとるべき最適な行動を知的に予測可能になるはずなので、審査通るか楽しみですね!
3.もっと知りたい人向けの情報
ここまで噛み砕いて、全てひっくるめてAIとして話してきましたけど、もちろん実際は、ここで紹介した技術にも細かい違いがあります。ということで、ここまで読んでいただいて、かつもっと詳しく知りたい人のためのリンク集です。
- Caltechの学部生向けの機械学習の講義(CS156)
- Caltechの学部生&大学院生向けの機械学習の講義(CS155)
- 機械学習が簡単に学べる書籍
- 深層学習 岡本貴之:高校で習った確率と行列計算の知識さえあれば、主にニューラルネットのことをさくっと学べる良本です。
- ゼロから作るDeep Learning 斎藤康毅:Pythonっていうプログラミング言語でニューラルネットを実装しながらその理論も学べる、これもまた初学者に優しい本です。ただ、実際に使うときはPyTorchかTensorFlowで実装しましょう。
- 強化学習 Richard S.Sutton & Andrew G.Barto:わかりやすくはありませんが、この本の著者が強化学習の発案者なので、それを学ぼうとする人は一応読んでおくべき本とされています。たぶんもっとわかりやすく説明されているものが今だったら他にたくさんあるとは思います。
- マンガでわかる機械学習、マンガでわかる人工知能:読んだことないですけど、マンガなら絶対わかりやすいですよね?
初コメントです!
つい最近YouTubeでたまたまShinoさんの動画を見つけ塚本さんの夢が「人類の生存圏を宇宙へ広げる」ことだと知りました。
(またそのときこのブログの存在を知って更新を楽しみにしていました!!)
自分も全く同じ夢を持っているのですが、自分の周りにはそういう意見の人はいなかったのでそれを聞いたときは驚きましたし、なぜか嬉しかったです笑
自分は素材という観点から夢にアプローチしたいと考えていて、来年度から4回生になり高分子の研究室に進むことが決まりました。
英語や外国が好きなので海外での生活や研究にも興味があり、今現在はいろいろな人の意見を踏まえマスターを取り自分の根幹となる分野を作ってから海外でphD取れたらと考えています。
憧れの海外、それも名門Caltechで、分野は違えど夢に向かって研究している塚本さんにとても憧れますし、参考にして自分も頑張りたいと思っています。
今後もブログの更新楽しみにしています^ ^
コメントありがとうございます。よかったです、Masaさんのようなバックグラウンドを持つ方にも、楽しんで読んでもらえるよう心がけますね!今後の参考にします、がんばってください!
はじめまして。僕は日本で臨床医をしながら、医療やライフサイエンス分野で宇宙ビジネスを創出しようと考えています。塚本さんやmasaさんとアプローチはちがいますが、「宇宙へ人類の生存圏を広げる」夢は同じです!僕は専門分野である医学、宇宙医学について独学しながらブログを書いてます。塚本さんのブログを今後も楽しみに見させてもらいますので、よろしくお願いします^^
そうなんですね、読んでいただいてありがとうございます。宇宙開発にも色々なアプローチがあるんですね、参考になります。お互い分野は違うようですが頑張りましょう!
初めまして、日本の大学に通っている学部一年生です。通っている大学には宇宙工学がないのですが、将来的にその分野で活動したいと考えています。自分自身プログラミング経験が全くなくて、近いうちに始めたいのですが、塚本さんは今まで(大学時代から大学院に至るまで)どの言語をどのくらい学習されたのか教えていただいてもよろしいでしょうか
僕もプログラミングは独学ですが、c++、python、matlabあたりの言語はやっておいて損はないと思います。時間をかけて勉強したというよりは、研究やプロジェクトの課題をプログラミングの本を読みながら実装する中で何となく身についた感じです。
宇宙工学もプログラミングも基盤は数学なので、それさえ今所属されている大学でおさえておけば大丈夫だと思いますよ!
AIで万葉集の解読難解歌を解読できればすごいと思います。