blog

All articles

MNIST

Published:

By nobituk

Category: Posts

Tags: 機械学習 ニューラルネットワーク Kaggle MNIST

MNISTを識別してみる

データファイルを THE MNIST DATABASE of handwritten digits からダウンロードしようとすると、以下のようにエラーとなる。

pic-0

Kaggleでデータセットを公開している人がいる のでダウンロー …

Read more...

手書き数字の認識

Published:

By nobituk

Category: Posts

Tags: 機械学習 ニューラルネットワーク digits

8x8画素、モノクロ17階調の画像を識別してみる

データの読み込み

import csv

import matplotlib.pyplot as plt
import numpy as np


def load_digits(file):
    x = []
    y = []
    with open(file, "r") as f:
        reader = csv.reader(f)
        for line in reader:
            x.append(np.array(line[0 …

Read more...

多クラス分類

Published:

By nobituk

Category: Posts

Tags: 機械学習 ニューラルネットワーク ディープラーニングがわかる数学入門

多クラス分類

3種類の数字を識別してみる

6x6画素、モノクロ2階調の画像を識別してみる

import matplotlib.pyplot as plt
import numpy as np
from mlp import (
    FullyConnectedLayer,
    InputLayer,
    MeanSquaredError,
    MultiLayerPerceptron,
    Sigmoid,
)

np.set_printoptions(precision=3)

x_train = np.array(
    [
        [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 …

Read more...

誤差逆伝播法(3) 乱数の種(2)

Published:

By nobituk

Category: Posts

Tags: 機械学習 ニューラルネットワーク ディープラーニングがわかる数学入門 誤差逆伝播法

乱数の種

MultiLayerPerceptron クラスを作成したのだが、乱数の種(シード)を変えるとどうなるか試してみる。

XORを識別してみる

import matplotlib.pyplot as plt
import numpy as np

# 自作 …

Read more...

誤差逆伝播法(3) 乱数の種(1)

Published:

By nobituk

Category: Posts

Tags: 機械学習 ニューラルネットワーク ディープラーニングがわかる数学入門 誤差逆伝播法

乱数の種

MultiLayerPerceptron クラスを作成したのだが、乱数の種(シード)を変えるとどうなるか試してみる。

4x3画素、モノクロ2階調の画像を識別してみる

import matplotlib.pyplot as plt
import …

Read more...

誤差逆伝播法(2) Pythonクラスの定義

Published:

By nobituk

Category: Posts

Tags: 機械学習 ニューラルネットワーク ディープラーニングがわかる数学入門 誤差逆伝播法

Pythonクラスの定義

モデルをPythonのクラスにしてみる

import numpy as np


class Sigmoid:
    def sigmoid(self, x):
        return 1 / (1 + np.exp(-1 * np.clip(x, -709, 709)))

    def activate(self, z):
        return self.sigmoid(z)

    def deactivate(self, a):
        return a * (1 - a)


class MeanSquaredError:
    def error(self, x, y …

Read more...

誤差逆伝播法(1)

Published:

By nobituk

Category: Posts

Tags: 機械学習 ニューラルネットワーク ディープラーニングがわかる数学入門 誤差逆伝播法

数学

分数関数の微分

$$ \biggl\{ \frac{1}{f(x)} \biggr\}' = - \frac{f'(x)}{\{f(x)\}^2} $$

指数関数の微分

$$ (e^{x})' = e^{x} $$

合成関数の微分

\(y = f(u)\) , \(u = g(x)\) のとき

$$ \frac{dy …

Read more...

勾配降下法

Published:

By nobituk

Category: Posts

Tags: 機械学習 ニューラルネットワーク ディープラーニングがわかる数学入門

P.102 例題 関数 \(z=x^2+y^2\) について、その最小値を与える \(x, y\) の値を勾配降下法で求めましょう。

$$ 勾配 \left(\frac{\partial z}{\partial x}, \frac …

Read more...

単純パーセプトロン

Published:

By nobituk

Category: Posts

Tags: 機械学習 ニューラルネットワーク

モデル

import numpy as np


class SimplePerceptron:

    def __init__(self, epochs=20, learning_rate=0.1, persistence=2):
        self.epochs = epochs
        self.learning_rate = learning_rate
        self.persistence = persistence

    def step(self, z):
        return np.where(z >= 0, 1, 0)

    def activate(self, z):
        return self.step(z)

    def _predict(self …

Read more...

slappasswdとopensslでsha256のハッシュ値が異なる

Published:

By nobituk

Category: Posts

Tags: OpenLDAP slappasswd OpenSSL GentooLinux

前提

software version
Gentoo Linux -
OpenLDAP 2.6.3
OpenSSL 3.0.11

事象

slappasswdを使ってパスワードを作成してOpenLDAPに登録したのだが認証が通らない。

原因

slappasswdとopensslで出力されるハッシュ値が異なる。

$ echo -n "abc" | openssl dgst -sha256 -binary | openssl enc -base64
ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=

$ slappasswd -o module-path=/usr/lib64/openldap/openldap -o module-load=pw-sha2 -h '{sha256}' -s abc
{SHA256}Wyvqx+38PRBfZkNfDd9si6Ggf …

Read more...