AIは「単なる関数」、数学は「言語の一つ」、「文系出身」でも問題ない――Pythonで高校数学の範囲から学び始めよう:「AI」エンジニアになるための「基礎数学」再入門(1)
AIに欠かせない数学を、プログラミング言語Pythonを使って高校生の学習範囲から学び直す連載。初回は、「AIエンジニア」になるために数学を学び直す意義や心構え、連載で学ぶ範囲について。
AI人材の不足
2015年にDeep Learningを利用したモデルが、画像認識率において人間を上回る結果を残したことを皮切りに、世の中はAIブームに突入しました。その勢いはすさまじく、業界を問わずビジネス形態が目まぐるしく変化しています。世界中のサービスが即座に利用できてしまう現代では、各業界の各企業にとってのライバルは、もはや同業他社だけではありません。これからの時代は、Googleをはじめとした最先端テック企業をライバルとして戦っていくことになるでしょう。
一方で、世界的に「AI人材の不足が深刻だ」といわれています。日本は特に深刻で、経済産業省は、2020年には5万人弱のAI人材不足が発生すると推計しています(参考:経済産業省「ITベンチャー等によるイノベーション促進のための人材育成・確保モデル事業」)。
このような人材不足を主因として、日本社会におけるAIの普及はまだまだ進んでいない状況です。これについては、内閣府もいよいよ焦りを見せ、2018年の4月の重要課題専門調査会議では「AI人材の充足に向けた具体策を早急に検討することが必要」との話し合いが行われました(参考:人工知能(AI)技術戦略 - 内閣府)。
ITエンジニアからAIエンジニアへのスキルアップ
では、現在求められる「AI人材」とは、どのような人たちなのでしょうか。AI人材を大まかに2つに分類するとしたら、AIプロジェクトに関する意思決定を行う「AIビジネスマン」と、AIを開発する「AIエンジニア」に分けられます。
そもそも、「AI」というワードから、皆さんはどのようなイメージが連想されるのでしょうか。「複雑なことでも、何でも人間のようにうまいことできてしまう」という幻想を抱いてしまう方もいるかと思います。
現在は、それとは全く異なります。いまのAIは特定のタスクの自動化や意思決定の補助を行ってくれる程度にすぎません。その上、AI技術の採用可否もケースごとにまちまちです。ビジネス課題を解決する上で、現状の構築/保守コストを考えると、AI技術を用いる以外の方法を採用した方が良いケースも当然存在します。現在のAIは限定的な機能しか実現できない状況にあるからこそ、実用化させる際には精度が求められがちです。
AIエンジニアとは、現在のAIを開発する上で重要な任務である「精度向上」を請け負う人たちということになります。
そこで本連載では、これからAI分野にキャリアを進めようとしているITエンジニアが「AIエンジニアの土俵」に立てるように、最低限必要な知識をピックアップし、解説します。
AIと切っても切り離せない「数学」を、高校生の学習範囲から学び直す
その最低限必要な知識とは「数学」です。AIの精度向上には極めて専門的な知識――統計学や線形代数学をはじめとした数学の知識や、計算科学の知識――が必要です。
AIは、日本語で「人工知能」と訳されるばかりか、IBMのWatsonやAmazonのAlexaなどは、まるで人間であるかのように話し掛けてくるものですから、魔法のように摩訶不思議なものと思われがちです。しかし、実態としてはコンピュータで高度な計算を行うことで、人間のように見せているにすぎません。
AIと数学は切っても切り離せない関係にありますが、一方で、それが初心者に対する大きなハードルになっているかと思います。
しかし、本連載は1人でも多くのITエンジニアをAIエンジニアの土俵へ導くことを目的としており、文系出身の数学に明るくない方に合わせていきます。できる限り1から10まで(高校数学の範囲から大学数学の範囲まで)解説する予定です。
数式をプログラミング言語Pythonで理解しよう
筆者は、「数学が分からないこと」「英語が分からないこと」は似た現象であると考えています。それは数学も言語としての性質があるからです。よって、英語を日本語に翻訳すると意味が分かるように、本連載では、数式をプログラミング言語(ここでは主にPythonを使用します)に翻訳しながら解説します。こうすることで、ITエンジニアの方々にとって分かりやすくなると考えています。
「数学はよく分からないが、プログラムは書ける」という方は、ぜひとも読み進めてほしいと思います。
何を、どこまで理解する必要があるのか?
ところで、「AIエンジニアの土俵」とは、一体どのようなレベルを指すのでしょうか。それは、データサイエンスに関する基礎的な知識から構成された「データサイエンスの世界観」を持っているレベルを想定しています。世界観というのは、「このデータ、計算、分析は正しい/誤っている」といった判断力や、「こういうことは、大体ああいう計算をしたらできる」という想像力を包括したものを指しています。
そこで、下図のように、その世界観を構成する最低限必要な知識をマッピングしました。
これらの知識は全て、大学数学レベルの内容です。「簡単なので、はりきって学んでいきましょう」と言うには少し無理があります。しかし、どれだけ難解な知識でも基をたどれば必ず単純な基礎知識へとたどり着きます。言い換えれば、関連する基礎知識の理解をしっかりと積み上げれば、どれだけ難解な知識でも必ず理解できます。
従って、次なる疑問は「関連する基礎知識はどれなのか」です。その答えを導くために、上図の右側に注目してみましょう。どの知識も統計学あるいは線形代数学のいずれかに関連していることがお分かりでしょうか。要するに、データサイエンスの知識の下地になっているのは統計学と線形代数学であることが分かります。
統計学、線形代数学を理解するためには、どのような下地が必要なのか?
「統計学と線形代数学を完璧にマスターしなければデータサイエンスの世界観が理解できないのか」というと、そうではありません。ここも同様に、最低限必要な知識さえ理解してしまえば十分です。下記は、その知識体系の図です。
ここまで来ると高校の時に勉強した、またはそのような気がするワードがちらほらと見当たるのではないでしょうか。高校で理系だった方は、おそらくそのほとんどに見覚えがあるでしょう。一方で文系だった方は、もしかしたら半分かそれ以下しか見覚えがないかもしれません。
それでも焦ったり、落胆したりする必要はありません。本連載では、統計学、線形代数学の世界観を会得する段階を「Season1」として、これらを一つ一つ丁寧に解説する予定です。また、基礎といえども、机上の学習だけにとどまらないように、計算プログラムや、実務的なノウハウ交じりの練習問題を設けていきます。
どのような心構えで学んでいくべきか?
最後に、AIについて学んでいくに当たって、心に留めてもらいたいことをお伝えします。
まずは、AIを「摩訶不思議なものである」と思わないことです。どれも「単なる関数だ」と思ってください。つまり、入力した値に応じて何かしらの値を返すものなので、ExcelのSUM関数も、スマートスピーカーのGoogle Homeも、その意味では同じものです。以下がイメージです。
sum(A1:A10)=A1セルからA10までのセルに入っている数字の合計 googleHome(音声)=入力された音声から推測される最適な返事
何となく、そんなに難しいものではない気がしてきませんか。
心に留めてもらいたいことのもう一つは、「数学アレルギー」という単語や感覚を脳内から消去するということです。なぜならば、その言葉を理由に、理解しようとすることを放棄してしまう恐れがあるからです。
先述の通り、1から10まで、時には高校数学の範囲を、プログラミング言語を通して解説していきます。よって、これまで数学アレルギーがあった方も、新しい言語を学ぶようなつもりで数学というものに向き合ってみてはいかがでしょうか。
まずは、「測定」について
次回から具体的に数学を学んでいきます。まずは、「測定」からです。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 数学ができると「数学ができないエンジニアはダメだ」の効果が計れる
数学ができるとエンジニアとして活躍できるのか、むしろ数学ができないとエンジニア失格なのか?――「エンジニアに数学の知識は必要か?」を、数学オタクが論理的に解説します。 - Pythonの文法、基礎の基礎
今回は、Pythonの制御構造と、リスト/タプル/辞書/集合という4つのデータ型について超速で見ていく。 - Pythonで機械学習/Deep Learningを始めるなら知っておきたいライブラリ/ツール7選
最近流行の機械学習/Deep Learningを試してみたいという人のために、Pythonを使った機械学習について主要なライブラリ/ツールの使い方を中心に解説する連載。初回は、筆者が実業務で有用としているライブラリ/ツールを7つ紹介します。