[PYTHON] Intelligence artificielle, machine learning, deep learning pour mettre en œuvre et comprendre

introduction

L'intelligence artificielle (intelligence artificielle) est populaire, mais nous comprendrons à quoi ressemblent l'intelligence artificielle, l'apprentissage automatique et l'apprentissage en profondeur tout en les déplaçant. Cependant, nous aurons juste une idée de ce à quoi cela ressemble, donc au lieu de l'implémenter à partir de zéro, nous allons exploiter le cadre de la bibliothèque.

Public cible

――Les personnes qui étudient désormais l'intelligence artificielle

objectif

--Comprendre la relation entre l'intelligence artificielle, l'apprentissage automatique et l'apprentissage en profondeur «Je peux en quelque sorte imaginer à quoi ressemblent l'intelligence artificielle, l'apprentissage automatique et l'apprentissage profond.

Qu'est-ce que l'intelligence artificielle?

Pensez à ce qu'est l'intelligence artificielle en premier lieu. "[L'intelligence artificielle dépasse-t-elle les humains](https://www.amazon.co.jp/%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD%E3%" 81% AF% E4% BA% BA% E9% 96% 93% E3% 82% 92% E8% B6% 85% E3% 81% 88% E3% 82% 8B% E3% 81% 8B-% E3% 83 % 87% E3% 82% A3% E3% 83% BC% E3% 83% 97% E3% 83% A9% E3% 83% BC% E3% 83% 8B% E3% 83% B3% E3% 82% B0 % E3% 81% AE% E5% 85% 88% E3% 81% AB% E3% 81% 82% E3% 82% 8B% E3% 82% 82% E3% 81% AE-% E8% A7% 92% E5% B7% 9DEPUB% E9% 81% B8% E6% 9B% B8-% E6% 9D% BE% E5% B0% BE-% E8% B1% 8A / dp / 4040800206) »explique comme suit: Ça a été.

La véritable intelligence artificielle, c'est-à-dire qu'un «ordinateur qui pense comme un humain» n'a pas été créé.

En d'autres termes, la technologie qui semble agir comme un être humain est généralement appelée ** intelligence artificielle **. De plus, la définition de l'intelligence artificielle elle-même n'a pas été établie parmi les experts.

Intelligence artificielle par niveau

Ce qu'on appelle l'intelligence artificielle dans le monde peut être divisé en quatre niveaux: «[L'intelligence artificielle dépasse-t-elle les humains](https://www.amazon.co.jp/%E4%BA%BA%E5%B7] % A5% E7% 9F% A5% E8% 83% BD% E3% 81% AF% E4% BA% BA% E9% 96% 93% E3% 82% 92% E8% B6% 85% E3% 81% 88 % E3% 82% 8B% E3% 81% 8B-% E3% 83% 87% E3% 82% A3% E3% 83% BC% E3% 83% 97% E3% 83% A9% E3% 83% BC% E3% 83% 8B% E3% 83% B3% E3% 82% B0% E3% 81% AE% E5% 85% 88% E3% 81% AB% E3% 81% 82% E3% 82% 8B% E3% 82% 82% E3% 81% AE-% E8% A7% 92% E5% B7% 9DEPUB% E9% 81% B8% E6% 9B% B8-% E6% 9D% BE% E5% B0% BE-% E8 % B1% 8A / dp / 4040800206) ».

--Niveau 1: ** Programme de commande simple (ingénierie de commande) ** ――Il est appelé "AI" à des fins de marketing. --Appartenance aux domaines de l'ingénierie de contrôle et de l'ingénierie système

--Niveau 2: ** Intelligence artificielle classique ** ――C'est à partir de ce niveau qu'elle est étudiée comme intelligence artificielle

--Niveau 3: ** Apprentissage automatique ** --La relation entre l'entrée et la sortie est apprise en fonction des données

--Niveau 4: ** Apprentissage en profondeur **

Différences entre l'intelligence artificielle, l'apprentissage automatique et l'apprentissage profond

L'intelligence artificielle, l'apprentissage automatique et l'apprentissage profond sont les suivants.

La relation entre l'intelligence artificielle / l'apprentissage automatique / l'apprentissage en profondeur et l'intelligence artificielle par niveau est illustrée dans la figure.

ai.png

Mettre en œuvre et essayer

Déplaçons-le réellement. Ce sera l'intelligence artificielle de niveau 2, niveau 3 et niveau 4 à mettre en œuvre. À chaque niveau, le taux de réponse correcte (0,0 à 1,0) est calculé sous forme de score.

Tout d'abord, je vais expliquer les données prédites par l'intelligence artificielle. Utilisez l'ensemble de données iris de scikit-learn.

L'intelligence artificielle prédit le résultat à partir des données d'entrée (fonctionnalités). Cette fois, il y a 3 types d'iris à prédire, et nous allons prédire quel iris. Les fonctionnalités de prédiction sont les suivantes.

Jetons un coup d'œil au contenu des données. La dernière colonne cible est le nom de l'iris.

   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  target
0                5.1               3.5                1.4               0.2  setosa
1                4.9               3.0                1.4               0.2  setosa
2                4.7               3.2                1.3               0.2  setosa
3                4.6               3.1                1.5               0.2  setosa
4                5.0               3.6                1.4               0.2  setosa
5                5.4               3.9                1.7               0.4  setosa
6                4.6               3.4                1.4               0.3  setosa
7                5.0               3.4                1.5               0.2  setosa
8                4.4               2.9                1.4               0.2  setosa
9                4.9               3.1                1.5               0.1  setosa

Intelligence artificielle classique (niveau 2)

Tout d'abord, nous mettrons en œuvre l'intelligence artificielle classique. Cette fois, j'ai trouvé une tendance à partir des données et mis dans une simple connaissance.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

#Importer des données
iris = load_iris()

#Diviser en quantité de caractéristiques et variable d'objectif
X = iris['data']
y = iris['target']
#Diviser en données à former et en données pour mesurer la précision du modèle formé
#La mise en œuvre de niveau 2 n'apprend pas par elle-même, donc seules les données mesurant la précision sont utilisées
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

#Une fonction avec des règles intégrées (connaissances) pour prédire
#Prédire par branchement en fonction de la valeur de la fonction
def predict_iris(feature):
    if feature[2] < 2 and feature[3] < 0.6:
        return 0
    elif 2 <= feature[2] < 5 and 0.6 <= feature[3] < 1.7:
        return 1
    else:
        return 2

#Fonction pour mesurer le score
def compute_score(pred, ans):
    correct_answer_num = 0
    for p, a in zip(pred, ans):
        if p == a:
            correct_answer_num += 1
    return correct_answer_num / len(pred)

pred = []
for feature in X_test:
    pred.append(predict_iris(feature))

score = compute_score(pred, y_test)

print('Score is', score)

résultat

Score is 0.9555555555555556

Apprentissage automatique (niveau 3)

Ensuite, nous mettrons en œuvre l'apprentissage automatique. Dans l'apprentissage automatique, le programme apprend à partir des données.

L'algorithme utilisé cette fois est la régression logistique, qui utilise la bibliothèque d'apprentissage automatique Python scikit-learn.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

#Importer des données
iris = load_iris()

#Diviser en quantité de caractéristiques et variable d'objectif
X = iris['data']
y = iris['target']
#Diviser en données à former et en données pour mesurer la précision du modèle formé
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

#Soit l'algorithme utilisé une régression logistique
model = LogisticRegression()
#Apprentissage
model.fit(X_train, y_train)
#Mesure du score
score = model.score(X_test, y_test)

print('Score is', score)

résultat

Score is 0.8888888888888888

Apprentissage profond (niveau 4)

Enfin, la mise en œuvre du deep learning. En apprentissage profond, le programme génère des fonctionnalités à partir des données et les apprend.

Le deep learning mis en œuvre cette fois sera un réseau neuronal composé de 5 couches. La bibliothèque à utiliser est keras.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from keras import layers
from keras import models
from keras.utils import np_utils

#Importer des données
iris = load_iris()

#Diviser en quantité de caractéristiques et variable d'objectif
X = iris['data']
y = np_utils.to_categorical(iris['target'])
#Diviser en données à former et en données pour mesurer la précision du modèle formé
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)

#Définir un modèle pour un réseau neuronal à 5 couches
model = models.Sequential()
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(3, activation='softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

#Apprentissage
model.fit(X_train, y_train, epochs=10, batch_size=10)

#Mesure du score
score = model.evaluate(X_test, y_test)

print('Score is', score[1])

résultat

Score is 0.8888888955116272

Résumé

L'intelligence artificielle, l'apprentissage automatique et l'apprentissage en profondeur avaient les significations suivantes.

Pour chaque score, le résultat était que la base de règles la plus simple était élevée. Cependant, veuillez noter que cette fois-ci, les données étaient très simples, de sorte que la véritable valeur de l'apprentissage automatique / apprentissage profond n'a pas été démontrée.

L'intelligence artificielle / IA est devenue un sujet brûlant ces jours-ci, mais j'ai senti que ce que je voulais faire (objectif) était plus important que les moyens (qu'il s'agisse d'IA ou non).

Les références

Recommended Posts

Intelligence artificielle, machine learning, deep learning pour mettre en œuvre et comprendre
Organisez des plateformes d'apprentissage automatique et d'apprentissage en profondeur
Enregistrez les étapes pour comprendre l'apprentissage automatique
Introduction au Deep Learning ~ Pliage et mise en commun ~
Résumé des API recommandées pour l'intelligence artificielle, l'apprentissage automatique et l'IA
Introduction à l'apprentissage profond ~ Fonction de localisation et de perte ~
Introduction à l'apprentissage automatique
Service scolaire où vous pouvez apprendre le langage de programmation Python et la technologie d'intelligence artificielle (apprentissage automatique / apprentissage en profondeur) (gratuit / payant)
Une introduction à l'apprentissage automatique
Comprendre l'apprentissage automatique ~ régression de crête ~.
Apprentissage automatique et optimisation mathématique
Apprentissage par renforcement profond 1 Introduction au renforcement de l'apprentissage
Super introduction à l'apprentissage automatique
Introduction au Deep Learning ~ Rétropropagation ~
Réseau de neurones pour comprendre et mettre en œuvre en mathématiques au secondaire
Mémos personnels et liens liés à l'apprentissage automatique ③ (BI / visualisation)
"Copie profonde" et "Copie superficielle" à comprendre avec le plus petit exemple
Apprentissage automatique pour apprendre avec Nogisaka 46 et Keyakizaka 46 Partie 1 Introduction
J'ai essayé d'implémenter Perceptron Part 1 [Deep Learning from scratch]
J'ai essayé d'implémenter Deep VQE
Introduction à la rédaction de notes d'apprentissage automatique
Importance de l'apprentissage automatique et de l'apprentissage par mini-lots
Créer une intelligence artificielle par apprentissage automatique à l'aide de TensorFlow à partir de zéro connaissance - Introduction 1
Implémenter le deep learning / VAE (Variational Autoencoder)
[Apprentissage automatique] Comprenez à partir des mathématiques pourquoi le coefficient de corrélation varie de -1 à 1.
Introduction à l'apprentissage en profondeur ~ Approximation des fonctions ~
Apprentissage profond pour démarrer sans GPU
Classification et régression dans l'apprentissage automatique
Introduction à l'apprentissage profond ~ Préparation au codage ~
Présentation de la bibliothèque d'apprentissage automatique SHOGUN
Essayer d'implémenter et de comprendre les arborescences de segments étape par étape (python)
Introduction au Deep Learning ~ Dropout Edition ~
Introduction au Deep Learning ~ Propagation vers l'avant ~
Introduction à l'apprentissage profond ~ Expérience CNN ~
Comment collecter des données d'apprentissage automatique
À propos de l'itinéraire le plus court pour créer un modèle de reconnaissance d'image par apprentissage automatique et mettre en œuvre une application Android
J'ai essayé de mettre en œuvre un apprentissage en profondeur qui n'est pas profond avec uniquement NumPy
Recherche de blogs techniques par machine learning en mettant l'accent sur la "facilité de compréhension"
(Apprentissage automatique) J'ai essayé de comprendre attentivement la régression linéaire bayésienne avec l'implémentation
J'ai essayé de classer Oba Hanana et Otani Emiri par apprentissage profond
Les débutants en apprentissage automatique suivent le cours d'apprentissage en profondeur de Coursera
[Apprentissage automatique] OOB (Out-Of-Bag) et son ratio
Introduction à l'apprentissage automatique: fonctionnement du modèle
Apprentissage amélioré pour apprendre de zéro à profond
Implémenter et comprendre l'arborescence de recherche d'union dans Go
J'ai installé Python 3.5.1 pour étudier l'apprentissage automatique
Signification des modèles et paramètres d'apprentissage en profondeur
Une introduction à OpenCV pour l'apprentissage automatique
Comment étudier le test Deep Learning G
Alignement d'image: du SIFT au deep learning
Résumé de la classification et de la mise en œuvre des algorithmes d'apprentissage automatique
Créer un environnement pour Python et l'apprentissage automatique (macOS)
Comment profiter de Coursera / Machine Learning (semaine 10)
"Tutoriels OpenCV-Python" et "Système d'apprentissage automatique pratique"
Comprendre et mettre en œuvre la régression des crêtes (régularisation L2)
Apprentissage automatique
Créez un environnement python pour apprendre la théorie et la mise en œuvre de l'apprentissage profond
J'ai essayé d'implémenter diverses méthodes d'apprentissage automatique (modèle de prédiction) en utilisant scicit-learn
J'ai essayé de traiter et de transformer l'image et d'élargir les données pour l'apprentissage automatique
J'ai essayé d'implémenter Cifar10 avec la bibliothèque SONY Deep Learning NNabla [Nippon Hurray]