【AI開発】ExcelVBAマクロで人工知能開発は可能か -入門編-
現在AIブ-ムは衰えるどころか開発に開発が進み、青天井で人気に拍車をかけ続けていることが容易に伺えます。
それは人工知能開発者の給与水準から見て取れることはもちろんであり、その需要は、Googleの開発したTENSORFLOWという人工知能モジュールの開発者への普及なども強く影響していると推測します。
そのようなAI こと人工知能は一端の事務職員からすれば雲の上のような存在に感じられることでしょう。
しかし、それは本当でしょうか?
答えはNOです。
事務職員でも多少勉強すれば触れてしまうVBAマクロでさえ人工知能の開発は可能です。少し初学的な内容から説明しながらここでは解説していきます。
ExcelVBAマクロって何?難しい?何が出来る?
単刀直入にExcelマクロは簡単に!Excel操作を自動化できます!(※厳密に言えばマクロとVBAは違いますが、大差ないのでここではより簡単なExcelマクロを説明致します)
ExcelマクロとはExcel上で動く自動化プログラムです。
「えっ?プログラミング?文系にはちょっと、、、」
と敬遠される方が多いかもしれないですが、ちょっと待ってください。本当に簡単にできるのです。プログラムを打つ必要さえありません。簡単な手順を説明すると
1、開発タブをオプション設定より追加する
2、開発タブより「マクロの記録」ボタンを押す
3、Excelに覚えさせたい操作を自分で操作する
4、開発タブより「マクロの終了」ボタンを押す
終了!(※詳しい方法はGoogleで「マクロ 使い方」と調べたら先人達の分かりやすい説明がいっぱいでるので省略します)
これでExcelはあなたの操作行動を学習し終えました。開発タブより「マクロの実行」を押すことであなたの行動を記憶して何度でも使うことが出来ます。
今まであなたがルーチンで行ってきた多くの時間を短縮することが容易に可能と言って良いでしょう。
これらからプログラムを一切打つことなくプログラムが完了出来ることがお解りいただけたでしょうか?
実際にはあなたの操作が内部でプログラム化されているので、行動の理解によるExcelの行動プログラミング化人工知能ということが出来るでしょう。
しかし、
「そんなことで人工知能なんて呼べるほど人工知能が簡単な訳がない」
と思われる方は当然おられるでしょう。
部分的に「その通り」と言わざるを得ません。少し人工知能について出来るだけ分かりやすく説明していきます。
取ってつけたようにExcelマクロと人工知能を因果付けてるような説明は誰も納得しないため、出来るだけ客観的に人工知能知能とExcelマクロを比較してみましょう。
人工知能とは一体全体何なの?
Excelマクロが人口知能と呼べるか否か。それを判断するには「人工知能とは何か」を理解することが手っ取り早いです。
「コンピュータを使って、学習・推論・判断など人間の知能のはたらきを人工的に実現したもの。」
辞書では上記のように人工知能が説明をされています。Excelマクロに照らし合わせるとすると
1、コンピューターを使って → ◎(PC当然使う)
2、学習 → ◎(行動学習)
3、推論 → ✖️(固定行動のみ)
4、判断 → △(判断はVBA if thenにて可能)
以上の結果から全て1点満点とすると2.5/4.0。つまり62.5点。VBAならば判断も可能となるために75点もの高得点となります。
もう少し深掘りしていきましょう
1、現代の人工知能知能と過去の人工知能の違い
実は人工知能ブームは過去にも起きています。その中でもキーとなるのが1980年代に起こった専門家の「判断」に重点を置いた人工知能です。
この人工知能は上記で一瞬出てきた「判断」に係るif thenプログラムです。
英語が得意な方は気付いているかもしれませんが、このif thenプログラムとは、
「もし〜の場合〜をする(そうでないなら〜をする」
という条件分岐をさせるプログラムなのです。もっとイメージを持っていただくために例を挙げましょう。
「貯金が100万円以上なら富裕層とする、そうでなく0円以上以上100万以下なら中流階級層とする(それ以外の0円以下の負債持ちは貧困層とする)」
上記はif(もしも)の中に更にifが使われている人間の思考に近い仮定文です。人間の判断や思考とは上記のように条件分岐から成り立ち、専門家の思考は一般人より多くの知識からなるより多くの条件分岐を持つことから「専門家」と呼ばれているのです。
これはExcelマクロでは出来ませんが、少し勉強した先にあるExcelVBAというマクロでプログラム化されたプログラムを触るだけで容易に出来るため、現代のExcelVBAで十分に可能な人工知能であったのです。
ただ、PCの出始めである1980年代では画期的なシステムであったため非常に注目を浴びた人工知能であった一方、専門家の複雑過ぎる思考をif thenのみで表現するにはPCの性能もif thenという人が規定する限定的な範囲という柔軟性の無さも専門家の知識を完全再現することは不可能だと問題視をされていました。
2、現代の人工知能の進化
では、旧人工知能と現代の人工知能とは何が違うかと申しますと、「判断ポイントの自主学習」というたった1点の違いなのです。
旧人工知能では、if thenつまり、「もし〜である場合」という判断ポイントを人間が指定しなければなりませんでした。
しかし、現代の人工知能は判断ポイントを自分で探します。
例えば1、2、3という数字の形から1を選ぶ場合、旧人工知能であれば
「数字の横の広がりがAーBの場合」かつ縦の長さが「cーd」に一番近似の場合、1とする」
等と記述しますが、現代の人工知能は自分で多数の比較資料を参考にどの場合が正解率が上がるか数値化解析を繰り返して判断して、判断ポイント(if then)をどんどん増やしていけるのです。これが時折耳にする「ディープラーニング」というホットワードです。
これらはExcelには不可能です。Excelにそのような数値解析を繰り返すだけの演算能力が無いためです。つまりExcelマクロは人工知能にはなり得ないと言えまるでしょう。
Excelマクロ(VBA)は人工知能開発できると言えるか
旧人工知能にしても現代の人工知能にしても詰まる所if then(もし〜なら)が基準となります。これを自動化するというところに重点を置くならば、ExcelVBAで十分実現可能なので、ExcelVBAは人工知能開発可能だと言えるでしょう。
一方で現代の人工知能であるif thenの自主学習という面では全く出来ないのでExcelVBAは人工知能開発不可能であると言えます。
つまり、最先端の人工知能開発は不可能だが、旧世代若しくは現代の一部の人工知能開発程度ならば十分に可能であると言えるかと思います。
日本人である以上「完璧」を求められるために、容易にExcelVBA程度で人工知能開発が出来るなんて言えない事が多いでしょうが、ExcelVBAで多くの自動化プログラムを組むことは大抵の人を驚かせられる程度の技術であることも事実であると筆者は実務経験からひしひしと感じています。
あまり高度過ぎる技術に囚われず、自分の手の届く人工知能開発も面白い一面を十分に持ち合わせているのかもしれませんね。