機械学習の進捗状況と、「実用システム」の構築(案)、今後の M1 の活用

Deep Learning

 現在、機械学習(深層学習)に関する内容を、書籍「ゼロから作る Deep Learning」シリーズ①~③を使って学習しています。3冊目もそろそろ終わりが見えてきたので、今後の学習の進め方を、M1 Macbook Pro の活用と合わせて考えたいと思います。

機械学習(深層学習)の進捗状況

 親ブログである「ディープラーニングの学習記録」でも記事にしていますが、最近、機械学習(深層学習:ディープラーニング)の勉強が順調に進んでいます。こちらのブログでは、M1 Macbook Pro に直接または間接的に関係する内容に絞って記事にしているので、詳しくは親ブログをご覧ください。

 簡潔にお話しします。現在、「ゼロから作る Deep Learning」という書籍を使って人工知能(ディープラーニング)の勉強をしています。この書籍は3冊シリーズで、現在、もう少しで3冊目が終わります。本の内容を簡潔に紹介します。

① Python で学ぶディープラーニングの理論と実践
 ディープラーニングの基礎・基本と、その Python のソースコードが示されています。この一冊で、深層学習に必要なほとんどすべての概念を学習できます。

② 自然言語処理編
 人工知能の自然言語処理に関する基礎・基本と、その Python のソースコードが示されています。コンピュータが言葉を覚えるとはどういうことか、また、現在、実際に使われている先進的な翻訳技術を学習できます。

③ ワークフレーム編
 人工知能のプログラムを効率的に記述するための言語としてワークフレームがあります。この本では、学習用に考案された「DeZero」というワークフレームを、実際にゼロから Python で記述する過程を学習します。結果として、ワークフレームによるプログラムの記述方法が身に付きます。

 現在(2021/3/21)、第4ステージ(全5ステージ)が終わりました。

深層学習の今後の学習スケジュール

 この分野の学習に、「これで事前学習は大丈夫です」ということはありません。しかし、ある程度、基礎学習が終わったら、実践的なプログラミングをやりたいと考えています。ただし、書籍で、「TensorFlow」を学習してからと考えています。

 「TensorFlow」の学習が終わったら、書籍①や②のPython で記述されたプログラムを、フレームワーク(Dezero や TensorFlow)で記述して実行したいと思います。また、書籍では実行が省略されていた、時間を必要とする複雑な学習プログラムを、実際に実行してみたいと思います。

 その際のプラットホームとして、現時点では以下に示す4つを考えています。()内は、マシンパワーです。

① Windows 10 Pro / Note PC(中)
② Big Sur / M1 Macbook Pro(強)
③ Ubuntu 20.04 / Mini PC(弱)
④ Google Colaboratory(強)

 ところで、現在、これらのプラットホームの実行環境整備を進めています。しかし、それは、動作確認のためです。実際に必要な実行環境を構築するためには、高価なパソコンの購入が必要です。それには、金銭的な問題も関係するため、現時点では保留です。

 関連して、試験的にNVIDIA の GPU を搭載したパソコンの購入を検討中です。比較的高性能な NVIDIA の GPU を搭載しているパソコンが、低価格で販売されています。これらの購入も視野に入れて検討中です。いずれにせよ、M1 Macbook Pro の学習環境が完全に整備されてからになります。

実用的なシステムの構築(当座の目標)

 ここで、当座の目標についてお話ししたいと思います。

 「なぜ人工知能の勉強をするのか」の答えの一つとして、自分の仕事に関する事柄に、人工知能の技術を使ってみることを考えています。簡単にはできないと思いますが、当座の目標として頑張りたいと思います。

 このシステムを構築することは、必要性や実用性に疑問の余地はありますが、人工知能の技術を生かせる可能性があると思っています。具体的には、以下のようなものです。

システム1 ろう者による発音の音声認識システム
 「ろう者」といっても、聞こえの状況はさまざまで、その発語に関しても状況はさまざまです。従って一概には言えませんが、一般的に、ろう者の発音を初めて聞いたとき、意味を捉えられないことが多いです。しかし、回を重ねてくると分かるようになります。まさしく、私たちの脳は学習していると思われます。これを人工知能で、行いたいと考えています。今回考える「音声認識システム」は、以下のような方針で進めたいと考えています。

第1ステージ
① ある特定の個人を対象とする。(第4ステージでは、複数の個人を対象とする)
② 特定の単語の認識を行う。(単語数は、最初は10個程度から始めて、徐々に増やしていく)
③ リアルタイムに音声認識するのではなく、単語の発音サンプルデータ(複数)を学習に用いる。
④ ニューラルネットワークの設計は、できるだけシンプル(2層程度)なものから始める。
  認識率の状況を見ながら、必要に応じて徐々に複雑なものにしていく。

第2ステージ
② 簡単な文章の認識を行う。(ただし、2音節「私・行く」、「明日・帰る」など)
①、③、④ は同じ

第3ステージ
② 少しだけ複雑な文章の認識を行う。(音節数を増やしていく)
①、③、④ は同じ

第4ステージ
① 複数の個人を対象とする
②~④ は同じ

 現在、考えられる課題は、以下の点です。

① データのサンプリング(音声のデジタル化に関する手法、量子化)
② ニューラルネットワークの設計(層の深さ、サイズ、レイヤ・オプティマイザの選択)
③ 実行速度、認識率(実用性)

 また、前段階として、健聴者のクリアな音声での認識状況を確認する必要があると思います。(もし、これをご覧になって、良いアイデアがあればご教授ください。)

M1 Macbook Pro の活用

 現在、機械学習のメインのプラットホームは、Windows 10 Pro です。最近は、CPU パワーが非力ですが、それらが問題にならない場合は、Ubuntu 20.04 になっています。理由は、Big Sur(M1 Macbook Pro)つまり ARM 対応のソフトウェアが少ないため、環境が整備できていないことが挙げられます。

 なので、今後は積極的に、M1 Macbook Pro のアプリケーションをインストールして、学習環境を整え、機械学習にチャレンジしたいと思います。Mac 購入当初は、Mac OS の改悪を恐れて消極的でしたが、ネットで情報を集めて安全に作業を進めたいと思います。

 すべての環境において機械学習が可能になったら、同一プログラムでの学習を行い、それぞれのパフォーマンスをチェックして比較したいと思います。また、M1 Macbook Pro のパフォーマンスをフルに引き出せる方法を見つけられると、嬉しいと思っています。

 M2 が登場するまでに、ARM アーキテクチャを使いこなせる技術を身につけたいと思います。

コメント

タイトルとURLをコピーしました