この記事を書いているのが、2026年5月です。
GWで暇なので、気になっていたAIの勉強しようかなと。
そもそも、AIがなんなのかよくわかってないんだけど。
もちろん、github copilotは毎日使っているけど
仕組みがわかっていない。
AIがどうやって動いているか知りたい
そして、AIを自分で作れるようになって、あわよくば高収入の仕事に転職したい!!
ということで、AIの勉強を始めました。
今日勉強するのは、機械学習ライブラリでサンプルの数字画像を学習させ、よういした数字画像が何かAIに予測させるという内容です。
⚫︎機械学習とは
AIの仕組みを知ろうと調べてみると、どうも元にあるのは機械学習らしい
pythonで機械学習のライブラリがあるらしいので早速やってみる
有名なライブラリが「scikit-learn」らしい
早速インストールや
pip install scikit-learn
インストール完了
どうも、これで機械学習用のデータセットをインストールできたらしい
早速動かしてみる
from sklearn import datasets
digits = datasets.load_digits()
print(digits.data)
これを実行すると
[[ 0. 0. 5. ... 0. 0. 0.]
[ 0. 0. 0. ... 10. 0. 0.]
[ 0. 0. 0. ... 16. 9. 0.]
...
[ 0. 0. 1. ... 6. 0. 0.]
[ 0. 0. 2. ... 12. 0. 0.]
[ 0. 0. 10. ... 12. 1. 0.]]
これはなんだろう。。。
調べてみると、このデータセットは、手書きの数字の画像データセットらしい??
あー画像って16進数だから、これは画像を数値に変換したものなのかな?
どうやら、これは8×8の画像を16進数に変換したものらしい
自分がなにやってるのかわかってないけど
今って機械学習の勉強してるんだよね_?
pythonに用意されている機械学習用のライブラリを落として、それを動かしてみたら、手書きの数字の画像データセットが出てきた
これが機械学習の勉強なの??
あたいは人間なので、この数字の羅列が画像だというんなら、この画像を見せてくれ!!
ということで、この数値を画像に直すライブラリを探してみる
matplotlibというライブラリがあるらしい
pip install matplotlib
インストール完了
import matplotlib.pyplot as plt
plt.imshow(digits.images[0], cmap=plt.cm.gray_r, interpolation='nearest')
plt.show()
これを実行すると、手書きの数字の画像が表示された!!

んー、どうも数字の0の画像のような。。。?
⚫︎機械学習アルゴリズムのSVMを使ってみる
機械学習のアルゴリズムを実装するためのライブラリにSVMというのがあるらしい
SVMは、サポートベクターマシンの略で、機械学習のアルゴリズムの一つらしい
さきほどインストールしたライブラリのsklearnに既にsvmのアルゴリズムが入っているらしい
import sklearn.svm
model = sklearn.svm.SVC()
model.fit(digits.data, digits.target)
これがSVMでの学習させる基本コードらしい
model.fit()の引数の第一引数に学習させるデータを入れて、第二引数にそのデータの正解を入れる
それで学習させることができるらしい
つまり
model.fit(学習させるデータ, 正解のデータ)
の形で覚えさせる
⚫︎答え用画像の用意
画像データのサンプルをSVMに学習させたので、
次は答え用の画像を用意してみる
答え用画像のファイル名は「2.png」です

ネットの拾いものです、すいません。
from PIL import Image
import matplotlib.pyplot as plt
image = Image.open('./2.png').convert('L')
resize = image.resize((8, 8))
学習させたサンプル画像が8×8の画像だったので
答え用の画像も8×8にリサイズしています。
⚫︎答え用画像を数値に変換する
SVMに学習させるためには、画像を数値に変換する必要があるらしい
import numpy as np
data = np.asarray(resize, dtype=int)
data2 = data * 17 // 256
これで、答え用の画像を数値に変換することができました。
⚫︎SVMに答え用画像を予測させる
それでは最後に学習させたSVMに、答え用の画像を予測させます
anser = model.predict([data2.flatten()])
print(anser)
「2」
と表示されれば成功!!
学習させたサンプル数字画像から、AIが提示された画像がどのサンプル画像に近いか推論して答えを出しているという理解で合っているのかな。
もちろん、推論なので間違えることもある。
あくまで統計データを見ているだけなのだから。
⚫︎まとめ
というわけでpythonを使って、機械学習をやってみました。
全然わけわかんないけど
なんとなーく、機械学習の入り口に立った気がする
ようするに、たくさんのサンプルをシステムに読み込ませて、パターンを作らせて予測させる
そんな感じかな
今日の勉強のソースはこれです
from sklearn import datasets
digits = datasets.load_digits()
# SVMアルゴリズムに数字画像データを学習させる
import sklearn.svm
model = sklearn.svm.SVC()
model.fit(digits.data, digits.target)
# 問題用の数字画像を読み込んで、8x8のサイズに変換する
from PIL import Image
image = Image.open('./2.png').convert('L')
resize = image.resize((8, 8))
# 画像を0-255の範囲から0-16の範囲に変換する
import numpy as np
data = np.asarray(resize, dtype=int)
data2 = data * 17 // 256
# 問題画像の数値を当てさせる
anser = model.predict([data2.flatten()])
print(anser)

コメント