[PYTHON] J'ai essayé d'organiser SVM.

・ À propos de SVM (Support Vector Machine) ・ Enfin, comme passe-temps personnel, utilisez-le dans le shogi informatique J'ai essayé ensemble.

1. 1. Présentation de SVM

SVM:Understanding Support Vector Machine algorithm from examples (along with code) http://www.analyticsvidhya.com/blog/2015/10/understaing-support-vector-machine-example-code/?utm_content=buffer4951f&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

Bien que ce soit un article en anglais, ceci est ma recommandation personnelle. Le concept de SVM est expliqué graphiquement sans explication par formule, Je pense que c'est très facile de s'entendre.

・ Classifier en dessinant la surface limite -Puisqu'aucune moyenne ou variance n'est utilisée, même si des données sont insérées ou modifiées, Pas besoin de recalcul global Tu peux voir ça.

2. À propos de la méthode appelée SVM

Résume PRML (reconnaissance de formes et apprentissage automatique) J'ai déjà un super article, voyez ça.

1). SVM linéaire

http://aidiary.hatenablog.com/entry/20100501/1272712699

Ce qui précède ne définit pas strictement comment dessiner l'interface, Un problème d'optimisation qui maximise la marge (la distance la plus courte entre la limite de classification et les données d'apprentissage). Vous pouvez voir que vous devez résoudre le double problème du problème de planification convexe.

2). SVM non linéaire

http://aidiary.hatenablog.com/entry/20100502/1272804952

En faisant de la marge une fonction non linéaire, une classification plus complexe est possible. Cependant, même avec cela, la classification est difficile en cas de chevauchement.

3). SVM à marge souple

http://aidiary.hatenablog.com/entry/20100503/1272889097

Jusqu'à présent, on l'appelle SVM à marge rigide, C'était une technique qui supposait que les données pouvaient être complètement séparées dans l'espace d'entrée x.

D'autre part, la marge souple SVM est utilisée pour surmonter la classification en cas de chevauchement comme décrit ci-dessus. C'est une méthode qui pénalise les erreurs de classification.

Plus il y a d'erreurs de classification, plus de pénalités sont ajoutées pour éviter la minimisation. Par conséquent, essayez de minimiser autant que possible les erreurs de classification. Il essaiera d'ajuster les paramètres.

Plus la pénalité est élevée, plus le classement est précis. Peu importe la précision des limites de classification ...

3. 3. Utilisation de SVM dans le shogi informatique

Prédiction de colmatage par SVM et son application Makoto Miwa, Département d'informatique fondamentale, École supérieure de science de la création de nouveaux domaines, Université de Tokyo (à l'époque) http://repository.dl.itc.u-tokyo.ac.jp/dspace/bitstream/2261/187/1/K-00177.pdf

SVM est utilisé pour prédire le colmatage dans le shogi.

En shogi, il est très important de juger s'il y a un blocage, "En utilisant la prédiction de colmatage à l'aide de SVM, nous avons pu réduire le temps de recherche à 62%." C'est le but de cet article.

Pour le shogi informatique ・ Application de l'apprentissage automatique aux fonctions d'évaluation ・ Algorithme de recherche pour rechercher des aspects Il est écrit en détail sur, donc je pense que ce sera très éducatif.

Dans "2. A propos de la méthode appelée SVM", j'ai expliqué étape par étape. En pratique, du coût de calcul et de la simplicité, il est d'environ 1. Je pense que le SVM linéaire de est suffisant.

Il existe des études qui appliquent la SVM non linéaire, mais je pense personnellement que c'est contre-productif. La précision obtenue est très faible pour le coût de calcul.


Supplément: Utilisation de l'apprentissage automatique dans le shogi informatique et aller http://www.slideshare.net/TakashiKato2/ss-57966067

Je l'ai soulevé moi-même, mais voyez ici comment utiliser l'apprentissage automatique dans le shogi informatique.

Recommended Posts

J'ai essayé d'organiser SVM.
J'ai essayé de m'organiser à propos de MCMC.
J'ai essayé de déboguer.
J'ai essayé d'apprendre PredNet
J'ai essayé d'implémenter PCANet
J'ai essayé de réintroduire Linux
J'ai essayé de présenter Pylint
J'ai essayé de résumer SparseMatrix
jupyter je l'ai touché
J'ai essayé d'implémenter StarGAN (1)
J'ai essayé d'implémenter Deep VQE
J'ai essayé de créer l'API Quip
J'ai essayé de toucher Python (installation)
J'ai essayé de mettre en place une validation contradictoire
J'ai essayé d'expliquer l'ensemble de données de Pytorch
J'ai essayé l'authentification vocale Watson (Speech to Text)
J'ai touché l'API de Tesla
J'ai essayé d'implémenter Realness GAN
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
J'ai essayé de créer un linebot (implémentation)
J'ai essayé d'implémenter Autoencoder avec TensorFlow
J'ai essayé de résumer la commande umask
J'ai essayé d'implémenter la permutation en Python
J'ai essayé de créer un linebot (préparation)
J'ai essayé de visualiser AutoEncoder avec TensorFlow
J'ai essayé de gratter
J'ai essayé de reconnaître le mot de réveil
J'ai essayé de commencer avec Hy
J'ai essayé PyQ
J'ai essayé d'implémenter PLSA dans Python 2
Entrée standard Python3 que j'ai essayé de résumer
J'ai essayé de classer le texte en utilisant TensorFlow
J'ai essayé AutoKeras
J'ai essayé de résumer la modélisation graphique.
J'ai essayé d'ajouter un post-incrément à l'implémentation CPython
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé de laisser optuna résoudre le nombre
J'ai essayé d'estimer le rapport de circonférence π de manière probabiliste
J'ai essayé de toucher l'API COTOHA
J'ai essayé d'implémenter PPO en Python
J'ai essayé le moulin à papier
J'ai essayé d'implémenter CVAE avec PyTorch
J'ai créé une API Web
J'ai essayé de résoudre TSP avec QAOA
[Python] J'ai essayé de calculer TF-IDF régulièrement
J'ai essayé de toucher Python (syntaxe de base)
J'ai essayé django-slack
J'ai essayé Django
J'ai essayé spleeter
J'ai essayé cgo
J'ai fait de mon mieux pour retourner au Lasso
J'ai essayé de résumer les modules d'Ansible - l'édition Linux
J'ai essayé de prédire l'année prochaine avec l'IA
J'ai essayé de créer une méthode de super résolution / ESPCN
J'ai essayé de programmer la bulle de tri par langue
J'ai essayé Web Scraping pour analyser les paroles.