KNOWLEDGE - COLUMN ナレッジ - コラム

【エバンジェリスト・ボイス】ブロック・プログラミングと人工知能

先端技術部
エバンジェリスト 佐藤 聖

初めまして、先端技術部エバンジェリストの佐藤です。

私は過去に金融機関の与信関連業務の中で、データ分析に触れる機会が多くありました。休暇を使用してニュージーランドのオークランドへ留学した後、 2015 年から 1 年間はデータサイエンスを学びました。当時、まだ新分野だったので日本国内の大学で専門の講座がなく、米国のジョンズ・ホプキンス大学で講義を受けました。

2016年頃から AI IoT 、ブロックチェーン、科学技術計算、画像解析などのお話をいただくようになりました。書籍や雑誌の特集記事などの執筆、都内でセミナーや勉強会を開催することもあります。

今回は、ブロック・プログラミングと人工知能についてお話します。今年の新学期から学校では、 STEM 教育の一環としてプログラミング授業が開始されます。人工知能は昨今の盛り上がりについてお話します。既にご存じの方もいらっしゃるかと思いますが、ここで振り返ってみようと思います。


■春に始まる STEM 教育
STEMとは Science Technology Engineering Mathematics の頭文字を取った言葉で科学・技術・工学・数学の教育分野を総称した言葉です。 STEM 教育の本質的な狙いは、理数系スキルの習得ではなく、自発性、創造性、判断力、問題解決力を養うことです。

STEM教育は、 2000 年代のオバマ政権の時に始まった米国の教育モデルです。その他の先進諸国にも導入され、 2015 年頃に東南アジア諸国やインドなどの新興国でも本格化しました。タイの小学校はパソコンを使った学習環境が整備されており、新型コロナウイルスで外出が制限されている中国でもオンライン学習できる環境があるそうです。日本は環境整備にかなり時間がかかりました。

STEM教育ではタブレットやパソコンでプログラミングをしたり、ロボットを組み立てたりすることで実践的な経験をします。子供の頃からプログラミングやロボットに触れることで、より専門性の高い人材を育成しようとする狙いです。 21 世紀型の教育モデルとして注目されています。

最近は、クラウドソーシングなどを利用した Web 系のサービス開発、人工知能の学習に使用するデータのアノテーション作業(ラベル付け)を副業や内職で行われることが多くなってきました。空いた時間を使って外出せずに仕事ができるので人気があります。大人向けのプログラミング教室やセミナーもオンラインも盛況なようです。大人にも STEM 教育の場が開かれています。


■初学者向けのブロック・プログラミング
従来のプログラミング言語開発では、文字・数字・記号で命令文や関数などを記述してプログラムを作成します。記述式のための覚えなければならないルールが非常に多くあります。プログラミングを記述しながらアルゴリズムをチェックするのは、複雑な作業になります。プログラムを作れるようになるには、アルゴリズムやその周辺の IT 分野の知識や経験が必要になります。スキル習得に時間がかかります。

教育向けにブロックベースのプログラミング言語が開発されており、 STEM 教育でよく利用されます。特徴はブロックとしてビジュアル的に表現されている点です。これはブロック・プログラミング言語や視覚的プログラミング言語とも呼ばれ、教育やコンピューターの専門家が求められるスキルを研究して開発に携わっています。

初学者にとってはプログラミングの記述ルールを覚えることよりも論理的な思考、自由な発想で新しいものを開発できる発想力などを鍛える方が有意義です。命令や機能はジグソーパズルのピース状になっており、ブロックと呼んでいます。ブロックは形や色で役割などは簡単に見分けられるようになっています。有名なブロック・プログラミング言語には、以下のような種類があります。

 ・ Scratch         MITメディアラボ提供の教育向けプログラミング言語(図 1
 ・ Scratch Jr     MITメディアラボ提供の低学年版の Scratch
 ・ Snap!             WEBブラウザベースの教育用グラフィカルプログラミング言語
 ・ Blockly          プログラミング開発を学べる Web アプリケーション

Scratch_1107x768

1 Scratch 公式サイト

近い将来、プログラミングや人工知能開発が就職のための一般的なスキルになっているかもしれません。 IT 業界に限らず、プログラミングに慣れ親しんだ新入社員が増え、 IT スキルが一般化すると自発性、創造性、判断力、問題解決力などのスキルが重視されるようになるでしょう。


■ディープラーニングと Scratch でゲームを作る
昨年、CQ出版社 Interface 2019年10月号の特集記事(夏の研究 プログラミング学習)を執筆しました。(図2)ディープラーニングによる物体検出とScratchで作成したゲームを組み合わせたゲームです。プログラミングを教える教師や親に向けた内容となっています。プログラミング、ディープラーニングの実験やニューラルネットワーク構造解説、ラズベリーパイのハードウェア制御実験も含まれます。(図3)

Interface 2019年10月号_740x1044

2 CQ 出版社  Interface 2019 10 月号

ゲームはScratchキャットがドラゴンやお化けを避けながら、グリーフラグのゴールを目指す簡単なものです。CoderDojoすぎなみ(https://coderdojo-suginami.github.io/)のご協力で、小学生の子供たちにゲームを体験していただきました。ゲームするだけでなく、小学生低学年でもScratchプログラミングを変更して、新しいゲームルールを作るなど想像以上に楽しんでいただけました。
ゲームのステージ_492x424

3 :ゲームのステージ図

このゲームは以下のような流れでゲーム自体やハードウェアを制御しています。

<処理の流れ>
 ・ラズベリーパイに接続したカメラで物体(リンゴ、バスなど)を撮影
 ・ディープラーニングで画像から物体検出
 ・物体検出の結果をからテキスト出力
 ・ Python プログラムでテキストに対応するラズベリーパイの GPIO ピンを電源オン
 ・ Scratch プログラムで GPIO ピンの電源オンを検出してキャラクターを操作

詳細な処理フローや装置の接続などは下記の図4のようになっています。(図4)
イメージ図 - 物体検出とScratchでゲームを作る_3498x2014

4 :イメージ図

物体検出の結果は、確率 43.8% でリンゴ、確率 96.1% でバスなどになります。複数の結果を出力する場合もあるため、最も高い確率の結果を採用するようにしました。人間も無意識に確かさを尺度に判断しており、絶対的な答えはありません。このゲームでは人工知能の正確度および答えの曖昧さ、機能するとき・機能しないときなどが体験できます。

RASPBERRY PI FOUNDATION https://www.raspberrypi.org/
※外部サイト: CQ出版社 Interface 2019年10月号


■人工知能が得意とする分野
人工知能は万能ではありませんが、特に画像、音声、自然言語の分野で高い成果が出ています。これらの分野では人間以上の認識・検出できるケースがあり、人工知能が得意とする分野です。その他、白黒つけられる問題も得意としています。例えば、金融(金融商品価格の上昇・下落の予測)、病理検査(陰性・陽性の判定)などです。また複数の特徴からパターンとして認識・検出できる顔認識、歩行者検出なども得意としています。これらは実用レベルに達しており、企業でも業務利用されています。

近年、人工知能に関連する研究は加速しています。 EU 加盟国は人工知能技術の促進に向け 2020 年までに約 2.4 兆円に増加させました。米国は約 2.1 兆円、アジアは 1.1 兆円のような巨額投資になりました。しかし、この数字には民間企業などの投資が含まれていません。これらを含めると世界全体で 10 兆円に迫ると言われています。

人工知能の投資競争の煽りを受けて、論文は1日に100本以上のハイペースで発表されます。3年前は1日に20~30本程度でしたので投資の急増していることを感じます。論文の数だけ人工知能の種類があると言われています。研究者でも全ての論文に目を通すのは物理的に不可能と言われています。有用な論文を探索するための人工知能が開発されています。論文発表の裏では、米国・中国・日本の人工知能関連の特許出願が急増しており、開発競争が激化していることが窺えます。


■人工知能を応用したシステム開発手法
企業では人工知能開発にクラウドサービスがよく利用されます。人工知能開発の中で時間がかかるのはモデル開発です。膨大な演算処理が発生し、モデルが求める精度に高まるまでに数か月の時間を要することも珍しくはありません。開発に時間を大幅に短縮するには、クラスタシステム(複数のサーバー群)やスーパーコンピューターで分散学習することも可能です。しかし、ほとんどの組織では数十台~数千台のサーバーをモデル開発に占有できる環境がありません。一般的にクラウドサービス(アマゾン ウェブ サービスの SageMaker Google Cloud Platform AutoML など)を利用することが多いと思います。コンピューター資源を最適化でき、短期間に膨大な演算処理能力を投入することができます。

人工知能の開発には機械学習フレームワーク( TensorFlow Chainer PyTorch MXNet Deeplearning4j Microsoft Cognitive Toolkit PaddlePaddle Caffe など)を利用することもあります。自由度の高いプログラミングが可能なため、独創的なモデルを開発する際に効果的です。

ディープラーニングなどではニューラルネットワーク(人工ニューロンネットワーク)を構成する入力層、中間層(隠れ層)、出力層があります。各層には、さまざまな数式が用いられます。フレームワークでは人工知能でよく使われる数式をプログラミング言語で記述した演算式が関数として用意されています。フレームワークを用いると一般的なプログラミング言語で開発するよりも短期間で開発できます。

人工知能はアルゴリズムだけでその性能が決まるものではありません。ニューラルネットワークの挙動を制御する膨大なパラメータの組み合わせが存在します。これをハイパーパラメータ(学習率やバッチサイズ、学習イテレーション数など)と呼び、入力データに対してアルゴリズムが適切な結果を出力するよう最適化させます。

ハイパーパラメータの最適化は、全パターンを試していく方法と確実です。しかし、逐次探索になり計算コストが最大限高くなり、最も処理時間のかかる手法です。総当たりで最適なパラメータを見つけようとした場合、大きなニューラルネットワークでは探索処理に何年もかかります。

一般的には次のような探索手法が用いられます。パラメータ群を多次元空間として捉え、一定間隔の点を順に探索するグリッドサーチ、ランダムな点をサンプリングして探索するランダムサーチ、ベイズ統計を応用してランダムサーチの結果から次の探索すべきパラメータ空間を絞り込んで探索するベイズサーチです。探索を繰り返すことでハイパーパラメータを最適化されていきます。メリットは計算コストの低減や探索時間を大幅に短縮できます。デメリットは根本的に当たりをつけて絞り込む探索手法であるため、未知の真に最適な点を発見されない可能性があることです。

クラウドサービスや人工知能フレームワークには、特徴が異なるので用途によっては向き・不向きがあります。実装面では既存 IT システム環境、データ、アルゴリズム、実装先ハードウェアなどの諸条件によって選択すべきクラウドサービスやフレームワークが異なります。人工知能で達成したい目的に適した選定が必要です。もちろん使ってみたい、試してみたいという理由で選ぶのもいいと思います。


■継続的なデータ収集が人工知能の活用を成功させるには
初めて人工知能を開発するときに必要なデータが全て揃ってケースは希です。目的に応じて必要なデータの範囲・種類・量・品質などを検討します。人工知能の開発だけではなく、価値向上ためにデータから新たな価値の発見、データの自動収集の仕組みが非常に重要です。人工知能の代表的な学習方法と入出力データの関係を下記の表にまとめました。
hyou_1151x275

表:代表的な学習法と入出力データの関係

データの種類には文字、数字、記号、画像、音声などさまざまです。人工知能の入力データは、文字、数字などの人間が解釈できるデータから抽出された特徴、人工知能が動作する環境などです。ですので、人間が見ているデータと人工知能が利用するデータは次元が異なります。人間と同じ基準に基づいて判断しているとは限りません。

学習方法やアルゴリズムによって出力されるデータの種類・形式などに特徴が異なります。目的によって選択すべき学習方法やアルゴリズムも絞り込めます。多様な結果を得たい場合には、複数の学習方法やアルゴリズムを組み合わせたアンサンブル学習のようなアプローチも一つの選択肢です。


■最後に
昨今の人工知能の研究開発ではマルチモーダル学習、ベイジアン強化学習などが話題となっており、新しいアプローチでの挑戦が始まっています。特にスマートフォンには、人工知能の処理を高速に実行できる SoC System on a Chip )が搭載されています。誰もが人工知能のような先端技術によって便利なサービスや機能が使える時代です。他にも、 IT 分野の先端技術には VR/AR IoT 、ブロックチェーン、 BMI Brain-Machine Interface )、 BCI(Brain-computer Interface) 、量子コンピューター、 5G 移動通信網、ロボット、自動運転、ドローンなどがあります。 IT に限らず医療、素材などの分野でも技術革新が頻繁に起こっています。ちょっと前に不可能だったことが、ある日突然、技術革新やアルゴリズムの進化によってブレークスルー・テクノロジーが出現することがあります。常に最新情報をリサーチして置くことも重要です。ブロック。プログラミングや人工知能についてお話ししました。

私が執筆したブロックチェーンの書籍が 3 4 日に発売になりました。CQ文庫 「マイニングや高セキュリティ通信を体験 ラズパイで作る ブロックチェーン暗号コンピューター」です。ブロックチェーンの基本的な仕組み、手を動かしてプログラムを実行するなどの体験できる内容を盛り込んでいます。詳細は、 CQ 出版社サイト でご確認ください。こちらも併せてご覧ください。

50281l_621x960

図: CQ 文庫 ラズパイで作る ブロックチェーン暗号コンピューター


当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。

エバンジェリストによるコラムやセミナー情報、
IDグループからのお知らせなどをメルマガでお届けしています。

メルマガ登録ボタン

佐藤 聖

株式会社インフォメーション・ディベロプメント 先端技術部 エバンジェリスト

この執筆者の記事一覧

関連するナレッジ・コラム

どのインスタンスを選べばいいの?EC2性能比較!

AIがプログラミングする時代の到来!?

残された攻撃の痕跡を追え! ~スレットハンティングのススメ~