はじめに
前回の宝くじの予測では、当選番号を数値のまま大きさとして扱いましたが、今回はOne-Hotモデルを使用して数値をカテゴリー(独立したラベル)として扱って予測してみたいと思います。
環境
| 環境 | version |
|---|---|
| Raspberry Pi 5 | Ubuntu 26.04 LTS |
| Tensor Flow | 2.20.0 |
| Python3 | 3.13.7 |
| JupyterLab | 4.4.9 |
モデル
前回は当選番号を1から43の数値のまま扱いましたが、今回は当選番号をOne-Hotモデルとして扱います。
今回のモデルはこちらになります。
当選番号
| 1 | 2 | 3 | 4 | 5 | 6 | ボーナス |
|---|---|---|---|---|---|---|
| 2 | 8 | 10 | 13 | 27 | 30 | 39 |
の場合、One-Hotモデルでは
Number 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... 27 28 29 30 31 ... 38 39 ... 43
One-Hot 0 1 0 0 0 0 0 1 0 1 0 0 1 0 ... 1 0 0 1 0 ... 0 1 ... 0
とします。
活性化関数にはSigmoidを使用しています。
各数字が独立してその回に出現する確率を0から1で計算するため、全43個の出力を足しても1にはなりません。これをSoftmaxにすると、合計が1になるように分配されるため、全ての値が
1\div43\approx0.023
付近になります。
学習結果
直近の20回(第2082回から第2101回)の結果から第2102回の当選番号を予測してみました。
AIが出した予想は下記になります。
どの数字も15%から18%の間の確率で出現するという結果になりました。
どの数字が選ばれるかはランダムでありフラットということだと思われます。
活性化関数にはSigmoidを使用しているので、
出力結果はそれぞれの数字が出現する確率となります。
0.15052876 0.16989382 0.1613776 0.16770077 0.15495245 0.18441603
0.1514841 0.16332847 0.15156297 0.17578736 0.15825047 0.16213447
0.15130284 0.1583491 0.16759512 0.1601822 0.14779699 0.16058975
0.16188006 0.15836477 0.164791 0.16700073 0.15950052 0.16514318
0.15600598 0.16148485 0.17193832 0.17586912 0.14675365 0.16237979
0.15816776 0.16508798 0.15359959 0.15951845 0.15831767 0.15981893
0.17347278 0.16603951 0.16660036 0.15196516 0.15440544 0.16303362
0.17111774
第2102回の当選番号とAIが予測した数字の出現確率
| 当選番号 | AIが予想した出現確率(0〜1) |
|---|---|
| 18 | 0.16058975 |
| 21 | 0.164791 |
| 25 | 0.15600598 |
| 28 | 0.17586912 |
| 30 | 0.16237979 |
| 43 | 0.17111774 |
| 8 | 0.16332847 |
編集後記
全ての数字が選ばれる確率は大体同じという結果になったと思います。
宝くじは趣味で購入して、地道にやっていきなさいという人生の心理にAIが辿り着いたように思います。
次回は、宝くじの予想で学んだことを使って、気象情報から電力の使用量を予想してみたいと思います。
環境について
Ubuntuのバージョンを26.04 LTSにアップデートしたことで、既存のTensorFlowの環境が使用できなくなりました。
最新バージョンのPythonにTensorFlowが対応していないため、今回はPython3.12を使用しました。
下記の手順で復帰しました。
$> sudo apt upgrade
$> sudo apt install -y software-properties-common
$> sudo add-apt-repository ppa:deadsnakes/ppa
$> sudo apt update
$> sudo apt install -y python3.12 python3.12-venv
$> python3.12 -m venv .aienv
$> source .aienv/bin/activate
(.aienv) $> pip3 install --upgrade pip
(.aienv) $> pip install jupyterlab
(.aienv) $> pip install tensorflow