日経平均株価が過去最高を更新!AIの需要を見込んで上がっていると言われているが、ぼくのポートフォリオはどこ吹く風である。くぅ!
ただ、ぼくたちファミっ子にとってAIと言ったらボス戦でザラキを連発するようなやつである。小学生頃のぼくたちの不満で次作では「めいれいさせろ」コマンドが実装された。
しかしぼくらも「そんな指示を出す勇者なんて勇者失格だろう」と思うくらいには大人になった。そんな態度じゃフリーレンも心を開いてくれないぞ。
そろそろぼくもAIと打ち解けるころ合いなんじゃないだろうか。
申し遅れました。2023年より株式会社DTダイナミクスでmeviyの開発をしております。南と言います。主にC++で形状の認識部分を開発しています。業務中や休憩中にふと思ったとりとめのないことを書いていきます。
では、初心者のぼくがAIについて簡単にまとめておこう。
そもそもAIってなんだっけ?
ウィキペディアを読むとAIは人間の知的な行動を人工的にやることだけど……ナルホド、わからん。
難しいので子ども向けの文科省のページなんかも参考にしてまとめてみた。
- 何らかの入力に対して、人の知識を模倣して何かを出力するのがAI。
- だから計算機もエアコンの温度設定も暗くなると点灯する電灯もぜんぶAI。
- 昔から人間の知識をプログラムに落とし込むことで人間の知識を模倣してきた。
- 近年、機械学習(のうち特にディープラーニング)でAI自身が膨大なパターンを学ぶことができるようになった。
- AIが自分で学習することで一気に応用が利くようになって、めちゃブーム。
はやりすたりを繰り返して3度目のブームなんだけど、今回はマジですげぇ。 - でもなんとなくパターンに当てはめているだけで意味を理解しているわけではない。
旅を経て成長したクリフトは「ガンガンいこうぜ」って指示を受けても、「なんかでかくてBGMが違うな……」って敵にはザラキを使うことはなくなる。けど、「ボスにザラキが効いちゃうとゲームとして面白くないから……」という制作側の意図をくみ取るってことはできてないってわけね。
じゃあ機械学習って?
いったんドラクエから離れよう。
言葉としてはよく聞くけど、機械学習ってどんな手法なのか。AIが学ぶとか言っても鉢巻巻いて勉強している姿はイメージできないだろう。
AIは入力に対して出力するんだけど、入力値を出力値に変換するには「モデル」を使用する。
y = ax + b のxが入力でyが出力だとするとax + bの式がモデルで、このモデルを作る手法の一つが機械学習である。
(英訳協力はDeepL。翻訳こんにゃくモデルはすでに実現されている。)
機械学習は3種類に大別できる。
ふむふむ。
もし板金なんかの金属加工見積もりをするAIモデルを作成するなら教師あり学習だろう。加工する金属の材質や容積やカットする線の長さや穴の数なんかを入力として、値段を出力とするのがよさそう。過去の実際の見積もりデータを使って学習することができる。
クリフトの行動決定するAIモデルを作成するなら強化学習だろう。ターンごとにステータス変化に応じて1点、-1点などのポイントを(人間、もしくはAI自身が)付けてポイントが最大になるように「行動」を学習してモデルを更新していけばよさそう。
機械学習にもいろいろな手法があるんだけど(ググると回帰分析やらウォード法やら主成分分析やらいっぱい出てくる)、今回は割愛。
だけど、避けて通れないボスキャラみたいな手法がある。そう、ニューラルネットワークを用いたディープラーニングである。
ちなみにディープラーニングって?
ディープラーニングは機械習(の主に教師あり学習)の手法のひとつ。ちゃんと理解しているわけではないのでChatGPTに説明を求めると
機械学習の一分野であるディープラーニングは、多層ニューラルネットワークを用いて複雑なパターンや問題を解決する手法です。大量のデータからパターンを学習し、そのパターンを元に未知のデータを予測したり分類したりします。画像認識、音声認識、自然言語処理などの分野で高い性能を示しており、幅広い応用が期待されています。 |
って言われて、真顔で「ほう……」とつぶやくのみである。
ニューラルネットワークとは人間の脳の神経回路の模倣したモデルということは想像がつくんだけど、AIがホルマリン漬けの脳みそだなんてそんな昭和なことある?
ということでもうちょっと詳しく説明。入力値に様々な重みづけをして次のレイヤーに伝えて最終的な出力値を得るというモデルで、予測値が正解に近づくようにエッジのウェイトを何度も何度も調整していく。
この入力値をノードとして次のノードに渡っていく様が「ごらん、脳神経みたいだろ?」ってことである。
図中の○がノード、線がエッジ。エッジにはウェイトという重みづけがしてあってそのウェイトで入力値を変更しながら次のノード、次のノードに遷移していく。最終的に出力層に出てきた結果と正解を比較して差分が小さくなるように各エッジのウェイトなど(バイアスという概念もある)を計算していく。
外部だけどZennにあったこの記事とか悔しいほどにわかりやすい。
ここまでがAIの入り口。ドラクエだったらプロローグが終わってフィールドを自由に動けるようになったところ。
AIの使いどころ
AIを何に使うだろう。ぼくらはAIを仕事で活用しようとする。
先日もShift-JISのファイルを一括でUTF-8に文字コード変換したいなと思ってChatGPTに作ってもらったところスクリプトが一瞬で生成された。
@echo off setlocal enabledelayedexpansion
set "source_folder=your_source_folder" set "output_folder=your_output_folder"
echo Converting files in %source_folder% to UTF-8 with BOM...
rem Create output folder if it doesn't exist if not exist "%output_folder%" mkdir "%output_folder%"
rem Convert all Shift_JIS files in the source folder to UTF-8 with BOM for %%f in ("%source_folder%\*.txt") do ( echo Converting %%~nxf... chcp 65001 > nul powershell -command "$content = Get-Content -Path \"%%~dpf\" -Encoding Shift_JIS; Set-Content -Path \"%output_folder%\%%~nf_utf8.txt\" -Value $content -Encoding UTF8" )
echo Conversion complete.
pause |
なんやかんやゴニョゴニョ変更したけど、ファーストステップとしてはかなり使えるものが生成された。
(ちなみにAIは何度ダメ出ししてもへこたれないし、ガンガン仕様追加しても文句を言わない。これを人間相手にやったらギスギスすること請け合いである。何かのたたき台を作るのにAIはすごく向いている。)
でもそれって想定された使い方の範疇で、仕事の効率UPにはなるけど革新的な使い方ではないように思う。(ChatGPTなどのサービス自体はものすごく革新的です。いつもお世話になっております。)
そこでタイトル回収。
新しい機能の実現にピーンときて「これAI使ったら行けんじゃね?」ってなれるように、AIの基本的な原理や特徴や得手不得手を知っておきたい。ディープラーニング以外にもいろいろな機械学習があるし、それぞれの方法を手軽に試せる環境も整ってる。
あまり真剣に学ぼうとすると偏微分とか行列計算でヒーヒー言ったり、学習データ使用時の法的な問題の調査でヒーヒー言ったりするけど、無理のない範囲でいろいろ試してみたらいいと思う。
仕組みなんか知りたくないという人もとりあえず画像や詩や音楽を生成してホクホクしてみたらいいと思う。
いつか勉強したり仕組みの話を聞いたりしたときに、使ってみたことのある技術とそうでない技術だとイメージの解像度が全然違う。
https://app.suno.ai/song/654de67a-3d49-4fc2-b2a9-a38da54f3440
sunoで作ってみた曲
DVDから配信サービスに切り替わったとき、ガラケーからスマホに切り替わったとき、内燃機関からEVに切り替わるかもしれないとき、新しいことにまごついていてチャンスを逃したらもったいない。勉強したり遊んだりするだけなら既得権益とかとも無関係である。
だからAIのことは斜に構えず分かり合いたい。のび太と鉄人兵団のように。