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送信欄にお書きください。



Generative AI

 2022年11月に OpenAI 社が ChatGPT という大規模言語処理モデル(LLM)を採用した生成的人工知能のチャットボットを発表して以来、ChatGPT をはじめとする生成的人工知能(generative AI)が多くの民間企業のみならず政府機関や地方自治体においても活用されています。GPT とは Generative Pretrained Transfomer の略で、その名前の通り、Transformer と呼ばれる言語処理モデルを改良したものです。 現在の ChatGPT は GPT の最新版を組み込んだチャットボットです。最近では、Googleは、テキスト、画像、オーディオを越えて機能する新しい大規模なマルチモーダルモデル(LMM)であるGeminiを発表しました。また、Meta 社は LlaMA 3 と呼ばれる大規模言語モデルをリリースしました。さらには、OpenAI で ChatGPT の開発に従事していたメンバーによって設立されたAnthropic社が Claude 3 という生成的AIを開発しました。LLM や LMM を組み込んだ生成的AI開発の黎明期に突入しています。

 日本国内でも、近年、無料で利用できる日本語大規模言語モデルが多数開発されています。海外モデル(Llama 2 ,3 、 Mistral や GPTなど)に日本語で追加事前学習を行ったモデルの代表的なものは、Llama-3.1-70B-Japanese-Instruct-2407 Llama 3 Swallow llama-3-youko-70b-instructなどです。 フルスクラッチで事前学習した日本語LLMモデルには、stockmark/stockmark-100b-instruct-v0.1 Tanuki-8x8B-dpo-v1.0 cyberagent/Llama-3.1-70B-Japanese-Instruct-2407などがあります。これらのLLMには、MIT や Apache-2.0 といったオープンソースライセンスが適用されています。

 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について少し説明をします。

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

 Google DeepMind が開発した「 Imagen 」シリーズはテキストプロンプトから高品質な画像を生成する画像生成モデルです。この画像生成モデル「imagen」を使用し、プロンプトから画像を生成できるプラットフォーム「ImageFX」が Google からリリースされています。既存の生成AI作成ツール「VideoFX」、「MusicFX」と「TextFX」もリニューアルされています。DeepMind が開発した画像生成AI「Imagen」の最新バージョンは「Imagen 3」です。ImageFXの公式サイトはこちらです。Google Gemini のサイトからも利用できます。Googleアカウントがあれば試すことができます。

OIG.jpeg
ImageFX による画像生成の例


OS and Computer 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

 大規模言語モデル(LLMs)開発で必須の自然言語処理の基礎的理論を説明します。チャットボット(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)の使用方法についても説明します。

 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



 画像生成の例

dog_dalle3.jpeg

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

fairely_dalle3.jpeg

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

mage/stable_1.jpgの画面

Stable Diffusion XL による画像生成

image_fx_1.png

ImageFX による画像生成

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

minato_miraiの画面

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

example_2

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

shishiiwa

平沢峠:獅子岩

example_4

AIで画像編集した獅子岩

aka.jpeg

八ヶ岳連峰の赤岳

example_5

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

akai_hashiの画面

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

example_6

AIで画像編集した赤い橋


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

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