Welcome to Mashykom WebSite


以下の web site は人工知能及びロボティクスを基礎から学習したいと思う人たち向けの学習素材を提供します。入門編から中級レベルまでになっています。
なお、プログラミングに必要な言語(Python, C++, Rust , Javascript, Swift, WebGL)及び Linux OS の説明も付けました。
各ページで使用されるコードは GitHub repository 及びGoogle Colaboratoryにアップされています。
GitHub repository へアクセスするためには、GitHub のアカウントが必要です。
また、Googleのアカウントを登録しておけば、Python 環境が用意された Colaboratory で GPU を用いた機械学習が無料で実行できます。

 ご要望やご意見の送信はこのEmail送信欄にお書きください。




OS and Programming Langauge

 人工知能関連の領域で最も活用されている言語は、オブジェクト指向言語のPython と C/C++ だと思われます。プログラミング言語の筆頭であるC/C++言語のコーディング及びコンパイルの方法に関する簡単なチュートリアルのページを配置しました。また、インタープリータ言語の代表である Python のインストール方法、および、基本的な文法と使用法を説明します。Jupyter Notebook を使用したソースコードの実行、Matplotlib の使用方法、経済モデルのシミュレーションなどを紹介します。

 近年、C言語やC++に代わる高速で安全性の高いプログラミング言語としてRustの注目が高まっています。RustはMozilla社が支援するオープンソースのプログラミング言語であり、2015年に登場した比較的新しいプログラミング言語です。このRust言語の入門的説明を加えました。

 1台のコンピュータ上に、複数種類のOSやパッケージ環境などを構築して研究開発を進めることが多くなってきました。Docker とよばれる仮想環境を構築するソフトが広範囲に使用されています。例えば、異なるOSのインストール 、複数のPython、Tensorflow や Linuxでのロボットのシミュレーションなどを実行するとき、Docker を用いて行うと便利です。Docker の簡単な利用法を説明します。


Python.Matplotを用いたグラフの表示例


Web and Markup Langauge

 ブラウザにWeb を表示するにためには、HTML(Hypertext Markup Language)というマークアップ言語で記述されたhtml ファイルが必要です。HTMLはプログラミング言語ではありません。マークアップ言語と言って、コンテンツの構造を決めるものです。Web ページ作成に必須のHTMLとCSSの書き方の基本を説明します。同時に、JavaScript ファイルの活用方法の初歩も説明します。

 JavaScriptのライブラリであるjQueryは必須スキルの一つになっています。このwebページのデザインに便利なjQueryの説明をします。この時、CodePenを利用するので、CodePenの利用法についても説明します。さらに、マークアップ言語を簡略化したマークダウンによるディジタル文書の作成についても触れます。

See the Pen canvas_1 by mashyko (@mashyko) on CodePen.

CodePen を用いたweb描画の例


Introduction to AI & Deep Learning

 最初に、人工知能(AI)の理論的基礎をなすニューラルネットワークの理論、特に、多層パーセプトロン・モデルを初心者向けに説明します。多層パーセプトロンを拡張した畳み込みニューラルネットワーク(CNN)および、ディープニューラルネットワーク(DNN)の有用性を説明します。Deep Learning で必須の偏微分計算における逆伝播法と勾配法についても簡単に説明します。

 近年積極的に開発が進む人工知能の Python API (Application Programming Interface)のためのフレームワークの代表例を説明します。C++ APIについては省略します。広範囲な利用が進むフレームワークの代表はPyTorch と TensorFlow だと言われています。PyTorch の使用法、及び、TensorFlow の活用について簡単な説明をします。さらに、OpenCV, Scikit-Learn、および、機械学習の各種ライブラリを紹介します。また、Google Colabの無料GPUサービスの活用法についても簡単に説明します。

alexnet.png

CNN の初期モデル、AlexNet の構造図:入力画像は3x224x224px


AI for Computer Vision

 各種のPython APIを用いて、人工知能の骨格である機械学習の基本的モデルとなっている畳み込みニューラルネットワーク(CNN)および、ディープニューラルネットワーク(DNN)を実装します。Deep Learning を実装するために活用される主要な Python API を実装するために、 TensorFlow 、 Pytorch 、Caffe2、Detectron2 などをインストールする方法や基本的な使用方法を説明します。

 TensorflowおよびPytorch でPython実装する画像分類のネットワーク・モデルは、AlexNet、SqueezeNet、SSD、VGG16、ResNetなどです。また、物体検出のアーキテクチャ・モデルは、Mask R-CNN、SSD、YOLO などです。学習済みモデルを用いた検証は、CPUのみのPCで実行可能ですが、モデルの学習のためにはGPUの活用が必須なので、Google Colaboratory を利用します。

YOLO_1.png

YOLO を用いた物体検出


AI for Natural Language Processing

 近年、ChatGPT が民間企業のみならず政府機関や地方自治体においても活用されています。GPT は Generative Pretrained Transfomer の略で、OpenAI 社が提供している ChatGPT は GPT-3,4 を組み込んだ大規模言語処理モデルです。GPT はTransformer と呼ばれる言語処理モデルを改良したものです。Transformer を改良した言語処理モデルにはBERT と呼ばれるソフトもあります。最近、Metaは、LlaMA 2 と呼ばれる大規模言語モデルをリリースしました。

 チャットボット(chatbot)とは人工知能を活用した「自動会話プログラム」のことですが、この理論的背景は自然言語処理を可能にした人工知能の開発に依存します。Deep Learning を用いた自然言語処理に必要な構文解析問題やテキスト分類問題を説明して、それらの解決のために必要なPython ライブラリの実装について説明します。また、会話ロボットのchatbotsの仕組みについても説明して、chatbotsの構築方法を取り上げます。

 日本語に関しては、日本語処理に必須の MeCab の説明から始めます。その後、Gensim や FastText を活用した日本語処理の方法を説明します。一般的なPython API ライブラリとして、GiNZA + SpaCY およびBERT(Pytorch_transformers)を用いたNLP、テキストマイニングや単語推論なども取り上げます。そして、NLTK を用いた言語処理についても説明します。


transformer.png

Transformer の構造


Image Generative AI

 従来のニューラルネットワークによる画像の生成モデルは GAN (Generative Adversarial Nets) です。敵対的生成ネットワーク (GAN)の理論的背景について解説します。また、GAN の改良版の DCGAN 、CycleGAN 、 Style Transfer などのモデルを Python で実装して、活用する方法を説明します。さらに、GAN から発生してきた異常検知モデル(Anomaly Detection)の使用方法についても説明します。

 近年には、言語による記述から画像を生成する技術が発達しています。 DALL・E 3 は、OpenAI社が開発した画像生成のAIアーキテクチャーで、驚異的な能力により画像生成AIの流行を牽引しています。このDALL・E 3 のライバルは MidJourney 5.2 Stable Diffusion XL でしょう。OpenAIのDALL・E 3 を利用するためには有料のサブスクリプションが必要ですが、 Microsoft のアカウントがあれば、Bing から無料で利用できます。

 2022年4月に公開されたDALL-E2では、CLIPの画像識別と拡散モデルの画像生成モデル(GLIDE)を組み合わせて画像生成を行ないます。テキストから画像を生成する上で用いられているのが拡散モデル(diffusion model)です。つまり、DALL-E2では、CLIPで得られたテキストのembeddingを画像生成の入力データとして用いて、拡散モデルからの出力がdecodeされます。DALL・E3は2023年9月21日に公開された最新のDALL・Eシリーズです。DALL・E を構成するモジュールのCLIP modelとDiffusion modelについて少し説明をします。

OIG.jpeg

DALL·E 3による画像生成


Edge Computing & IoT

 シングルボード・コンピュータの代表的な機器は英国ラズベリーパイ財団が開発したRaspberry Pi と、半導体メーカーNVIDIAが販売する(Jetson シリーズの) Jetson Nano です。Raspberry Pi はGPUを搭載しないCPUのみのコンピュータですが、Jetson Nano はGPU+CPUを搭載したコンピュータです。Raspberry Pi 及び Jetson Nano をIoT 向けの サーバー として利用した edge computingの構築を試みます。

 Raspberry Pi 及び Jetson Nano に Web カメラを装着したライブ映像からの物体推論をリモートPCを介して実行します。また、Raspberry Pi に Google Coral TPU Accelerator や Intel Movidius NCS をUSB 接続して、ライブ映像から物体検出を行います。

jetson_raspi.jpeg
Jetson Nano (左)と Raspberry Pi 3(右)


Introduction to Robotics

 Raspberry Pi 及び Jetson Nano を搭載した小型ロボットの操作について説明します。ロボットの操作には、ロボットの操作に特化したミドルウエア、ROS(Robot Operating System)をインストールすることが便利です。ROSはオープンソース・ソフトウエアで、PythonとC++をサポートします。Linux OSのDebian ディストリビューション Ubuntu に ROSをインストールして、その使用方法を説明します。

 ROSをインストールしたRaspberry Pi 及び Jetson Nanoを利用します。RT社の Jetson Nano Mouse ロボットにJetson Nano を搭載し、Raspberry Pi をRaspberry Pi Mouse ロボットに搭載します。これらのロボットを実際に使って、PCやスマホからリモートコントロールして、ロボットの操作を実行します。

 ロボット開発の分野では、ロボットのAI化だけでなく、現実世界をデジタル世界でリアルタイムに可視化してシミュレーションするディジタルツイン、あるいは、メタバースと呼ばれる手法が注目されています。このシミュレーションをする上で、よりリアルな周辺環境やロボットの動きの再現を追求する課題において、Unity を活用することが重要視され始めています。Unity-ROSを用いたロボット・シミュレーションについても説明します。

jnmouse.png
Jetson Nanoを搭載したRT社製 Jetson Nano Mouse ロボット


Computer graphics

 WebGLとは、Webブラウザ上(ホームページ上)で、三次元のCGをリアルタイムに表示して動かせるオープンソースのグラフィックAPIです。OpenGLから派生したOpenGL ESの3D APIをWebブラウザに移植したものです。WebGLを用いて3DCGを作成することを試みます。JavaScript ライブラリのThree.js を使用して Web に 3D CG を表示してみます。3DCGアニメーションを作成するための統合環境アプリケーションで、オープンソースのフリーウェアのBlender の活用についても説明します。

上側の描画は、WebGLで描いた3D CG の例です。下側は、Blender で 3D アニメーション CG の例です。

WebGL Demo
Sintel.png

AI for Mobile Devices

 Tensorflow Lite を活用したIoT機器への機械学習アプリのインストール方法を説明します。コンピュータビジョンの機械学習機能を容易にAppに組み込むことができます。また、iOS機器に物体検出のDeep Learning を組み込むために、XcodeやSwiftの初歩的な解説を行います。フェイストラッキング、顔検出、ランドマーク、テキスト検出、矩形検出、バーコード検出、オブジェクトトラッキング、画像レジストレーションなどの機能に対応しています

classifications.png



右側の画像は Google Deep Dream Generator を用いて描画しています。原画は左側にある画像です。関連するページはNeural Style Transferです。

dog_dalle3.jpeg

DALL·E3による生成画像の例1

fairely_dalle3.jpeg

DALL·E3による生成画像の例2

minato_miraiの画面

コンチネンタルホテルとコスモクロック21

example_2

AIで画像編集したみなとみらい

pictures/nobeyama1.jpg

野辺山:遠くに八ヶ岳を望む

example_1

AIで画像編集した野辺山

shishiiwa

平沢峠:獅子岩

example_4

AIで画像編集した獅子岩

aka.jpeg

八ヶ岳連峰の赤岳

example_5

AIで画像編集した八ヶ岳連峰

akai_hashiの画面

八ヶ岳高原ラインの赤い橋:東沢渓谷

example_6

AIで画像編集した赤い橋


このページのトップに戻る

The Top Page of Mashykom World
Last updated 2023.7.15(first version uploaded in 2010.1.18 on MGU website)