[RUBY] Apprendre des bases Manuel sur l'intelligence artificielle Chapitre 5 Problèmes de fin de chapitre

introduction

En tant qu'étude de l'apprentissage automatique, je lis "* Apprendre des bases: manuel d'intelligence artificielle *".

La particularité de ce livre est que le problème de fin de chapitre contient un simple programme de Python.

Ici, il est copié avec Ruby.

Chapitre 5 Problème de fin de chapitre

neuralnet.rb


INPUTNO = 2
HIDDENNO = 2

def forward(wh, wo, hi, e)
  HIDDENNO.times do |i|
    u = 0.0
    INPUTNO.times do |j|
      u += e[j] * wh[i][j]
    end
    u -= wh[i][INPUTNO]
    hi[i] = f(u)
  end
  o = 0.0
  HIDDENNO.times do |i|
    o += hi[i] * wo[i]
  end
  o -= wo[HIDDENNO]
  f(o)
end

def f(u)
  return 1.0 if u >= 0
  0.0
end

wh = [[-2, 3, -1], [-2, 1, 0.5]]
wo = [-60, 94, -1]
e = [[0, 0], [0, 1], [1, 0], [1, 1]]
hi = [0] * (HIDDENNO + 1)

e.each do |i|
  puts "#{i}->#{forward(wh, wo, hi, i)}"
end

Il n'y a pas d'apprentissage en calculant un simple réseau neuronal hiérarchique, mais soyez prudent car il y a une erreur dans le retrait sur la 26e ligne ** (25 septembre 2019, 1ère édition, 1ère impression) **

error.py


for i in range(HIDDENNO):     #Faux

    for i in range(HIDDENNO): #Positif

Comme vous le savez, les erreurs d'indentation dans Python semblent fatales, mais heureusement, vous pouvez télécharger l'exemple de code depuis la page du livre d'Ohm.

step.rb


def f(u)
  return 1.0 if u >= 0
  0.0
end

 #Exemple de sortie
[0, 0]->0.0
[0, 1]->1.0
[1, 0]->1.0
[1, 1]->0.0

La fonction de transfert f est une fonction d'étape

Sigmoid.rb


def f(u)
  1 / (1 + Math::E ** -u)
end

 #Exemple de sortie
[0, 0]->0.0006265270712940932
[0, 1]->0.6434453861326787
[1, 0]->0.0003334059232134918
[1, 1]->8.512503196901111e-16

La fonction de transfert f est une fonction sigmoïde

ramp.rb


def f(u)
  return u if u >= 0
  0.0
end

 #Exemple de sortie
[0, 0]->0.0
[0, 1]->1.0
[1, 0]->0.0
[1, 1]->0.0

La fonction de transfert f est une fonction de rampe

Résumé

Recommended Posts

Apprendre des bases Manuel sur l'intelligence artificielle Chapitre 5 Problèmes de fin de chapitre
Apprendre en profondeur à partir des bases mathématiques Partie 2 (pendant la fréquentation)
Othello ~ De la troisième ligne de "Implementation Deep Learning" (4) [Fin]
Pip la bibliothèque d'apprentissage automatique à partir d'une extrémité (Ubuntu)
Créer une intelligence artificielle par apprentissage automatique à l'aide de TensorFlow à partir de zéro connaissance - Introduction 1
Deep learning / Deep learning from scratch 2 Chapitre 4 Mémo
Deep learning / Deep learning made from scratch Chapitre 3 Mémo
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 5 Mémo
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 7 Mémo
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 8 Mémo
Deep learning / Deep learning made from scratch Chapitre 5 Mémo
Deep learning / Deep learning made from scratch Chapitre 4 Mémo
Deep learning / Deep learning from scratch 2 Chapitre 3 Mémo
Deep Learning / Deep Learning à partir de Zero 2 Chapitre 6 Mémo
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer jusqu'à la fin du chapitre 2
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 7]
Notes d'apprentissage depuis le début de Python 1
Deep learning / Deep learning made from scratch Chapitre 6 Mémo
[Mémo d'apprentissage] Deep Learning fait de zéro [Chapitre 5]
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 6]
Deep learning / Deep learning made from scratch Chapitre 7 Mémo
Notes d'apprentissage depuis le début de Python 2
Apprentissage profond à partir des bases mathématiques (pendant la fréquentation)
Statistiques mathématiques des bases Variables probabilistes
[Mémo d'apprentissage] Deep Learning fait de zéro [~ Chapitre 4]
Deep Learning from scratch La théorie et la mise en œuvre de l'apprentissage profond appris avec Python Chapitre 3