FellowPFNフェローの丸山(宏)です。2月にプログラミング教育についてのブログを書きました。それに合わせて制作した教材を利用して、6月に弊社カフェテリアで、小学生を対象にした体験教室を開催しました。この体験教室については、丸山(史郎)がロボットカーの体験教室について、西澤が火星語翻訳を題材にした教材について書いています。このブログでは、これら一連の教育関連の活動について、その意義と全体像をもう一度整理してみたいと思います。付録に、現在PFNが提供する教育用コンテンツのリストがありますので、そちらもご利用ください。育成とプログラミング教育に関する有識者会議」は、議論の取りまとめを公表し、その中で自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力をプログラミング的思考と呼び、それをこれからの時代における普遍的な能力として教育課程に組み込んでいく必要を訴えました。ここで言う「プログラミング」は、アルゴリズムを実行するステップを明示的に書き下すタイプの通常のプログラミングで、このようなプログラミング作られたソフトウェアをここでは古典的ソフトウェアと呼ぶことにしましょう。ソフトウェア2.0古典的プログラミングでは、「計算機にやってほしいこと」を記述するのに、計算のステップを明示的に計算機に指示するプログラミング方法しかありませんでした。それが計算機に対する唯一のプログラミング方法でしょうか。深層学習による帰納的プログラミングにおいては、入出力の例示(訓練データセット)を与えることによって「やってほしいこと」を記述します。Optunaのようなベイズ最適化ツールは最大化(最小化)したい関数の、特定の点の値を返す「オラクル」を記述することによって「やってほしいこと」を記述します。どちらも、計算のステップは記述しません。Karpathy氏はソフトウェア2.0と呼んでいます。ソフトウェア2.0では、計算機内部で実行されるアルゴリズムを知らなくても構いません。「やってほしいこと」を伝える方法さえ知っていれば計算機というツールを使うことができのです。乗換案内というツールを考えてみましょう。「やりたいこと」は出発地と目的地を指定することで伝えることができます。場合によっては、航空便を使わない、とか時間よりも価格を重視する、とかの最適化もできます。乗換案内を実装している中のアルゴリズムをご存知でしょうか。analysis)などの探索アルゴリズムのようなものだと思います(私は中身を見たわけではないので、想像にすぎません)が、中身を知らなくても乗換案内を効果的に使うことができます。乗換案内のような道具を使う際に大事なのは、その中身がどのようなメカニズムで実装されているかではなく、それが提供する機能、すなわち「A地点からB地点まで移動する最短時間(最短コスト)の経路を表示する」というものだと思います。機能さえ知っていれば、中のメカニズムを知らなくても使えるのです。私達が毎日使っているテレビ、スマホ、電車などは、その機能はよく知っていますが、中のメカニズムを正確に知っている人はほとんどいないと思います。それでも上手に使えます。同様に、これからの計算機は、古典的プログラミングを知らなくても、深層学習やベイズ最適化の「機能」だけ知っていれば使える時代が来るのだと思います。小学生に対して私たちが教育コンテンツを提供するのは、このような未来を想定しているからです。長期的には「やってほしいこと」を記述するだけのソフトウェア2.0的なプログラミングが可能になると思いますが、一方で、直近では深層学習という新しい技術を正しく理解し、社会問題の解決に効果的に使っていくスキルが求められます。深層学習は人工知能研究における偉大なブレークスルーですが、それだけで人間の知性のような、いわゆる「汎用人工知能」が実現できるわけではありません。ホーキング博士が言う「人間を超えるAI」は、まだSFの世界の話であり、現在の深層学習技術の延長上にはない、というのが多くの人工知能研究者の意見です。深層学習にできること、できないことを正しく理解し、それを等身大に発信していくことが私たちには求められています。Chainerチュートリアル」などの教育コンテンツは、これは社会で実際に深層学習を利用する社会人の方々、あるいは卒業後にそのような職種につきたいという大学生・大学院生の方々に対して、この技術を正しく理解して、正しく有効に活用していただきたい、という意図で提供しているものです。このため、深層学習のベースとなる数学や確率・統計の理解を含め、記述の正確性に重点を置いたコンテンツになっています。共同で作らせていただいたコンテンツは、より間口を広くして、高等専門学校から大学学部レベルの学生の方々に、深層学習に興味を持っていただく内容になっています。EV3というロボットカーを実際に深層学習で制御して走らせてみる、というハンズオンスタイルの教材になっています。ルールベースの古典的プログラミングと深層学習によるSoftware2.0のプログラミングを対比して学べるようになっています。Pi上で完結するように設計されていて、クラウドに依存することなく、授業を実施することができます。ノウハウが存分に活かされています。今後もPFNは、将来を見通して、社会にとって必要な教育コンテンツを、初等教育からリカレント教育まで幅広く提供していきます。基礎から、機械学習・ディープラーニングの理論の基礎とコーディングまでを丁寧に幅広く解説したオンライン教材。ディープラーニングをじっくり学びたい社会人の自習や、大学・大学院での講義資料として最適。Pythonの基礎知識を前提として、ディープラーニングを速習、さらに健康・医療における応用事例までをカバーしたオンライン自習教材。EV3の制御までを行うワークショップ型の教材。大学・高専などにおけるハンズオン形式の授業に最適。初等教育向けのディープラーニング教材。最新の技術の紹介のビデオ、ディープラーニングで「火星語ほんやく機」を作るハンズオン、自動化によって変わる社会を考えさせるスライドからなる。文部科学省プログラミング教育推進月間の一環として、全国33校の小学校の「総合」の授業で利用中。分散処理、専用ハードウェア、バイオインフォマティクス、ケモインフォマティクスといった幅広い分野で研究開発を行っています。