人気ランキング1位のPython
コンピューター言語Python(パイソン)は1991年に誕生しました。2023年で32歳になるPythonは、近年のプログラミング言語ランキングの上位3位以内に選ばれるほどの人気ぶりです。
AI・機械学習やデータ分析で需要の高いプログラミング言語であることがその最大の理由です。本連載でもことあるたびにAIは数学でできていることを取り上げてきました。AIの実装こそがPythonのコーディングによってなされています。
次はPythonによる画像認識の様子です。左の画像ファイルとともに真ん中のPythonコードを実行することで画像に写った物が何であるかを識別します。
右がその結果です。猫の場合にはtabbyである確率が71%、Egyptian_catである確率が14%、犬の場合にはbassetである確率が94%、bloodhoundである確率が4%、車の場合にはsport_carである確率が70%、convaretibleである確率が22%というようにラベルと確率が上位5位まで出力されます。
注目すべきはPythonコードの短さです。20行のコードでAIのコーディングができてしまうことに驚かされます。Pythonに限らずコンピューター言語はライブラリを読み込むことで様々な機能を付加できます。この画像認識プログラムにはTensorFlow(テンソルフロー)というGoogleによって開発されたAI用の高度なライブラリが使われています。
高校数学教科書に登場するベクトルや行列の上位概念がテンソルです。画像や動画データをテンソルとして扱うことでビッグデータの処理が効率よく行えるようになります。さらにテンソルデータに対して数学的処理を行うことでディープラーニング(深層学習)が可能になります。
まさにAIは数学のカタマリです。ところが画像認識の20行のコードには高度な数学は書かれていません。したがって、高度な数学の知識がなくてもコーディングはできます。
インストールなし、すぐに使い始められるPython
TensorFlowを使うためにPythonが使われているといっても過言ではありません。開発したGoogleは、PythonとTensorFlowなどのライブラリを誰にでも容易に使えるようにするためにGoogle Colaboratory(グーグルコラボラトリー)という無料のサービスを提供しています。
インストールなしでPythonがすぐに使い始められます。これこそGoogle Colaboratory最大の特徴です。インターネットに繋がったPCさえあればOKです。プログラミングといえばPCと実行環境のインストールが付きものです。これが初心者にとって最大のネックとなります。
Google ColaboratoryをはじめPythonにはさまざな実行環境(スマホのアプリでも可能)が容易されているので、本当にすぐに始めることができます。Pythonの解説もWeb上にいくらでもあるので本すら必要ありません。
数学ツールとしてのPython
筆者は小学6年生からプログラミングを始めてきたので40年以上になりますが、Pythonほど驚いた言語はありません。数学との相性が抜群だからです。数学ツールとしてのプログラミング言語はこれまでにもたくさんありました。なんとか使うことはできてもインストールの大変さや独特な文法のために使い続けようと思ったものはありませんでした。
そんな筆者を虜にしたのがPythonです。もちろん他のプログラミング言語と比較すれば欠点は見つかります。しかし、欠点など吹き飛ぶほどの数学ツールとしての使いやすさがあります。
Pythonを使い始めてまもなく実力を試す機会がやってきました。2020年にコロナ禍が始まった時に、筆者は感染症シミュレーションの記事を緊急投稿しました。それが仕事としてのPythonデビューとなりました。
感染症シミュレーションはSIRモデルという連立微分方程式を解くことでなされます。Pythonだからこそ迅速にコーディングができました。
以来、日経ソフトウェアにPythonと数学の記事・連載を執筆することになりました。
数学教科書としてのPython
筆者が毎月開催しているZoomオンラインセミナー「桜井進のPython・UNIX教室【数学プログラミングコース】」(小学1年生以上対象)ではGoogle Colaboratoryをテキストに授業を行っています。
Python+数学ライブラリによって、高度な数学でもストレスなくコーディングができます。スピーディにコードを打ち込めて、すぐにレスポンスが返ってくる、このテンポの良さがPythonの魅力です。
教科書+黒板の授業で学ぶ数学というのは、習得するまでにそれなりに時間がかかります。こうやったらどうなるだろう、という疑問に対して教科書は何も返してはくれません。しかし、Pythonは打ち込んだコードに対して即座に反応が返ってきます。
Pythonには高度な数学がぎっしり詰め込んであり、それを自在に引き出すことができます。Pythonは新しい数学の学びのツールとしての価値があると言えます。
筆者が提唱するが「私の数学」です。学校以外で数学を独りでいかに学べばいいのか、それに対する答えの1つがPythonです。最初に紹介した画像認識のコードから出発してディープラーニングの仕組みに興味を持ったならば、そこから数学の独習を始めることができます。ボトムアップの「学校の数学」に対して、トップダウンの数学の学びを可能にするのもPythonならではです。
「私の数学」では、目標も手段もペースもすべて自分が決めます。小学生がPythonで微分方程式を扱ったとしても、「学校の数学」における先取り学習にはなりません。Pythonによる数学の学びはあくまでも「私の数学」での取り組みです。
数学を本当に自分のものにするには、長い時間をかけた取り組みが必要になります。教科書でもPythonでも関係ありません。数学への興味と関心を持たせ持続的に数学と付き合うようにするためには、Pythonは強力な味方になります。
Pythonに興味を持ったならばGoogle ColaboratoryのWebページにアクセスしてみましょう。数学との新しい出会いが待っています。
執筆者プロフィール
桜井 進(さくらい すすむ)
1968年山形県東根市生まれ。サイエンスナビゲーターⓇ。株式会社sakurAi Science Factory 代表取締役CEO。東京理科大学大学院非常講師。東京工業大学理学部数学科卒。同大学大学院院社会理工学研究科博士課程中退。小学生からお年寄りまで、誰でも楽しめて体験できる数学エンターテイメントは日本全国で反響を呼び、テレビ・新聞・雑誌など多くのメディアに出演。著書に『雪月花の数学』『感動する!数学』『わくわく数の世界の大冒険』『面白くて眠れなくなる数学』など50冊以上。
サイエンスナビゲーターは株式会社sakurAi Science Factoryの登録商標です。
桜井進WebSite