【人工知能】AIを勉強する際に必要なモノとは【数学】
はじめに
今日、人工知能やAIという単語自体は聞いたことがある人は多くいるはずです。そして「何かすごいものが作れる」、「今後必要なモノ」そういった認識を持ち興味を持って調べたり勉強を始める人も多くいるはずです。簡単とは言いませんが、それでもどういった勉強をしていけば良いのか、必要な知識を紹介していきます。
人工知能=ロボット?
最新の技術のように感じられる人工知能ですが、歴史の浅い技術ではなく、既に情報としてはかなりの量が出回っています。つまり、既にみなさんが使用していたモノの中に人工知能は組み込まれていたということです。一概にロボットという風に括ってしまうことは学習していく上で自ら大きな壁を作ることでもあり、できることの可能性を狭めてしまうことになります。
勉強をしていく上で必要なもの
既にみなさんの生活の中に浸透した人工知能ですが、勉強を始めてもなかなか難しく感じる部分があります。なぜなら、人工知能で使用されるPythonを勉強するだけでなく、数学の勉強もする必要があるからです。
とはいえいきなり大学数学を勉強するのは、現役の理系大学生でない限り少し抵抗が大きいでしょうから、最初は高校数学で習う微積分や行列、確率(PやC)など、場合によっては中学生の時に習う一次関数や確率などを勉強し始めると良いでしょう。特に中学数学の一次関数は関数を扱う上で最も基本的な考え方であり、数学的な思考を鍛える上でも必須単元です。大学数学であれば線形代数や解析学などを中心に学んでいくことをおすすめします。
この数学の勉強以外にも言語の勉強が必要になります。
Pythonに関しては様々なe-learningもあり技術本、スクールなどがあるので、そのように勉強をしていくと非常に有効です。何よりPythonの基本的な部分に関しては、他の言語よりも素直な表現で書くことができるのでスムーズに進むでしょう。とはいえプログラミング言語ですので、「何を作りたいのか」を考えた上で勉強を進めていくと良いです。
Pythonを勉強する環境
Pythonには非常に便利な「Anaconda」というものが存在しています。Anacondaはデータサイエンスの方向けに作業を効率よく行えるように便利なパッケージをまとめられたディストリビューションです。
基本的には「Anaconda」をインストールしておけば、独学で書いていく上で困ることはありません(業務においても当たり前のように使用されているものです)。「そこまでの本格的なものはまだちょっと…」「容量が大きくてPCのスペック的に厳しい」というような方もいるかもしれません。
そんな方は「Miniconda」というディストリビューションで環境を整えましょう。非常に簡易的に書くと「Anaconda」よりもインストールされるものが少なく容量も小さい、必要最低限のものがインストールされるというものです。つまり「Anaconda」をインストールしてどれを使えば良いのか分からないという方にはこちらの「Miniconda」をおすすめします。勉強をしていく中で「Miniconda」ではインストールされなかったパッケージが必要になった場合は「conda」を利用することでインストールすることができます。
ここでまとめていくと
・最初から全てできるようにして勉強を進めていきたい
→Anaconda
・必要最低限のモノをインストールして勉強を進めていきたい
→Miniconda ※condaを利用して追加インストール可能
と、上記のように使い分けるとスムーズに学習を進められるでしょう。
フレームワークについて
Pythonにはフレームワークというものが存在しています。簡単にイメージすると
・スマートフォン
→基本的なものは入っており使用者の好みでアプリを入れてカスタマイズできる
・車
→車種ごとの基本性能はありホイールやライト、内装もカスタマイズ可能
イメージとしてはこのような感じになります。
つまり、何か作りたいものを作る際に必要最低限の部分をフームワークで用意して、仕様に変化があった時に自由に対応できるものがフレームワークとなります。
このフレームワークを勉強することの利点として、
・最速で作りたいものへ近づける
・業務で必要になった時にスムーズに行える
という2点があります。
このフレームワークの中でも2つほど紹介いたします。
Flask
特徴としては、必要最低限のものしか含まれておらず非常に動作が軽いです。フレームワークの中でもマイクロウェブアプリケーションフレームワークと呼ばれています。そして必要最低限のもしか含まれていないため学習する際のコストが非常に少ないと言えます。簡単な、小規模なアプリケーション作成にはFlaskは有効ですので最初の開発にはおすすめと言えます。
Django
フルスタックフレームワークであるため、開発する際の速度は速いと言えます。よってFlaskよりも大規模なアプリケーションの開発に向いていて、Flaskよりも前に登場したフレームワークです。勉強していく中で気付いた点として少し前から存在しているからか、日本語での解説があります。英語に苦手意識を持っている方はDjangoを進めていく方がスムーズにいくでしょう。ウェブアプリケーションの開発にはRubyを用いることが多かったですが現在はDjangoの国内、海外共にシェアを拡大しています。
まとめ
どの言語も同じことが言えますが作りたいもの、こういった内容の業務をしたいという明確な目標を持って勉強を始めればどのように勉強を進めていけば良いかがわかります。まずは、なぜ勉強をするのかを考えてから進めてみてください。