what is support vector machine machine learning
Този урок обяснява машината за поддръжка на вектор в ML и свързани концепции като Hyperplane, вектори за поддръжка и приложения на SVM:
В Предишен урок , научихме за генетичните алгоритми и тяхната роля в машинното обучение.
Изучихме някои контролирани и неподдържани алгоритми в машинното обучение в нашите по-ранни уроци. Обратното разпространение е контролиран учебен алгоритъм, докато Kohenen е ненаблюдаван учебен алгоритъм.
В този урок за машини за поддръжка на вектори ще научим за поддръжките за машини за поддръжка. SVM са здрави математически контролирани алгоритми за машинно обучение, широко използвани в класификацията на набора от данни за обучение.
=> Прочетете пълната серия за обучение по машинно обучение
Какво ще научите:
- Какво е машина за поддръжка на вектор (SVM)
- Какво е хиперплан
- Какви са алгоритмите за класификация и регресия
- Какво представляват векторите за подкрепа
- Как работи поддръжката вектор машина
- Как да оптимизираме позицията на хиперплана
- Приложения на SVM
- Заключение
- Препоръчително четене
Какво е машина за поддръжка на вектор (SVM)
SVM алгоритъмът е контролиран алгоритъм за обучение, категоризиран в класификационни техники. Това е бинарна класификационна техника, която използва набора от данни за обучение, за да предскаже оптимална хиперплан в n-мерно пространство.
Този хиперплан се използва за класифициране на нови набори от данни. Като двоичен класификатор, наборът от данни за обучение хиперпланът разделя набора от данни за обучение на два класа.
Алгоритмите SVM се използват за класифициране на данни в двумерна равнина, както и в многомерна хиперплан. Многоизмерният хиперплан използва „ядрата“, за да категоризира многоизмерните данни.
Винаги е желателно да има максимално разграничение между класифицираните точки от данни. Това означава, че те трябва да имат максимално разстояние или хиперпланът трябва да има максимално поле между точките с данни.
Какво е хиперплан
Хиперпланът е граница, която разделя равнината. Това е граница на решение, която класифицира точките с данни в 2 отделни класа. Тъй като SVM се използва за класифициране на данни в многомерни, хиперпланът може да бъде права линия, ако има 2 входа или 2 D равнина, ако има повече от 2 входа.
Алгоритмите SVM могат да се използват и за регресионен анализ, но основно се използват за класификация. Нека да видим още подробности за всеки от тези методи.
Какви са алгоритмите за класификация и регресия
Класификационен алгоритъм е този, който анализира данните от обучението, за да предскаже резултата. Резултатът е целеви клас, например , Ден или Нощ, Да или Не, Дълъг или кратък. Пример за алгоритъм за класификация би бил дали клиент в супермаркет, който купува хляб, би купил и масло. Целевият клас ще бъде „Да“ или „Не“.
Алгоритъмът на регресията установява връзката между независимите променливи и предсказва резултат. Линейната регресия установява линейна връзка между входа и изхода. Например: „A“ като вход и „b“ като изход, линейна функция ще бъде b = k * a + c.
Какво представляват векторите за подкрепа
Вектори за поддръжка са точките с данни, които ни помагат да оптимизираме хиперплана. Тези вектори лежат най-близо до хиперплана и са най-трудни за класифициране. Позицията на хиперплана за вземане на решение зависи от опорните вектори. Ако тези опорни вектори бъдат премахнати, това също ще промени позицията на хиперплана.
Поддържаща векторна машина (SVM) използва точки за входни данни или функции, наречени вектори за поддръжка, за да увеличи границите на решенията, т.е.пространството около хиперплоскостта. Входовете и изходите на SVM са подобни на невронната мрежа. Има само една разлика между SVM и NN, както е посочено по-долу.
Входове: Мрежата на SVM може да съдържа n броя входове, които казват x1, хдве, …… .., хi,…., Хн.
Изходи: Целевият изход t.
Тегло: Подобно на тежестите на невронната мрежа w1, вдве, ......, внса свързани с всеки вход, чиято линейна комбинация предсказва изхода y.
Разлика между SVM и невронни мрежи
Синаптичните тегла в невронните мрежи се елиминират, за да се изчисли изхода y на мрежата, докато в SVM ненулевите тегла се намаляват или премахват, за да се изчисли оптималната граница на решението.
С премахването на тежестите, това ще намали набора от входни данни до няколко важни входни характеристики, които ще помогнат при вземането на решение за разделящата се хиперплоскост.
Как работи поддръжката вектор машина
Както знаем, целта на поддържащите векторни машини е да максимизират маржа между класифицираните точки от данни. Това ще доведе до по-оптимални резултати за класифициране на нови набори от нетренирани данни. По този начин тя може да бъде постигната чрез разполагане на хиперплан в положение, при което маржът е максимален.
Нека да видим пример за линейно разделени точки от данни:
Етап 1: Открийте правилния хиперплан от различни възможности: За да решите най-добрия хиперплан, разберете всички възможни равнини, които разделят данните, и след това изберете този, който най-добре класифицира входните набори от данни. На графиката по-долу има три възможности за хиперплан. Хиперпланът 3 разделя по-добре точките от данни.
Стъпка 2: Изберете хиперплан с максимално поле между най-близките точки от данни: Маржът се определя като разстоянието между хиперплана и най-близките точки от данни. Така че, оптимално е да имате максимален марж. Когато 2 или повече от 2 хиперплана класифицират данните еднакво, тогава открийте границите.
Избран е хиперпланът с максимален марж. На фигурата по-долу хиперпланът 2.1,2.2 и 2.3 разделя точките с данни, но хиперпланът 2.2 има максимален марж.
Стъпка 3: Когато са налице отклонения: Отклоненията са точки от данни, които се различават от набор от точки от данни. В случай на 2 набора от точки с данни може да има отклонение. SVM игнорира такива отклонения в данните и след това намира хиперплан с максимален марж.
Стъпка 4: В случай на нелинейно разделени точки от данни, SVM използва трик на ядрото. Той ще преобразува нелинейно разделима равнина в разделим панел чрез въвеждане на ново измерение. Триковете на ядрото са сложни математически уравнения, които правят сложни трансформации на данни за оптимизиране на хиперплоскостта.
Фигурата по-долу показва нелинейно разделими точки от данни, които след това се трансформират във висока размерност с равнина z. Хиперпланът, разделящ двата набора от данни, е кръг.
Как да оптимизираме позицията на хиперплана
Позицията на хиперплана се оптимизира с помощта на алгоритмите за оптимизация.
SVM параметър: ядро
Изграждането на оптимизирана хиперплан в нелинейно разделим проблем се извършва с помощта на ядра. Ядрата са математически функции, които преобразуват сложния проблем, използвайки линейната алгебрична форма.
За линейно ядро уравнението се намира като:
F (x) = b + сума (ai* (x, xi))
където,
x е новите входни данни
хiе опорният вектор
б, аiса коефициентите. Тези коефициенти се изчисляват по време на фазата на обучение на алгоритъма.
За сложен нелинейно разделим проблем трикът на ядрото работи като преобразуване на нелинейния разделим проблем в разделим проблем. Той трансформира сложните данни и открива начина за разделяне на точките с данни на изходи.
Функциите на ядрото са от много типове като линейни, полиномиални, сигмоидни, радиални пристрастия, нелинейни и много други.
Нека да видим как се използват някои от горните функции на ядрото:
Функциите на ядрото изчисляват вътрешния продукт на 2 входа x, y на пространството.
# 1) Функция на радиално пристрастие: Най-използваната функция на ядрото казва, че за всички стойности, лежащи между x = (-1,1), стойността на функцията е 1, иначе 0. За някои прихващания кажете xi, стойността на функцията на ядрото е 1 за | (xi- h), (xi+ h) | за xiвзето за център и 0 в противен случай.
# 2) Сигмоидна функция: Като невронни мрежи, използващи Sigmoid, функцията на ядрото за SVM е
# 3) Функция на хиперболичния тангенс: Тъй като невронните мрежи използват, функцията е
# 4) Функция на Gaussian Kernel: Функциите на Gaussian Kernel
# 5) Полиномиална функция: k (xi, хj) = (xi* хj+1)две
Приложения на SVM
Реалните приложения на SVM включват:
# 1) Класификация на статиите в различни категории: SVM прави разлика между писмените текстове и го поставя в различни категории като развлечения, здраве, художествени статии. Той се основава на предварително зададените прагови стойности, изчислени по време на обучението на SVM.
Ако праговата стойност е пресечена, тя се поставя в категорията. Ако стойността не е изпълнена, тогава са определени нови категории за класификация.
python срещу c ++ синтаксис
# 2) Разпознаване на лицето: Даденото изображение се класифицира като лицево или нелицево изображение чрез откриване на характеристиките с помощта на пиксели. Изображението се разпознава като лице или лице.
# 3) Здравна информация: SVM се използват за класифициране на пациентите въз основа на техните гени, разпознаване на биологични модели и др.
# 4) Откриване на протеинова хомология: В изчислителните медицински науки SVM се обучават как се моделират протеиновите последователности. След това SVM се използва за откриване на протеинова хомология.
Заключение
В този урок за поддръжка на векторни машини научихме за поддръжка на векторни машини. SVM алгоритмите са контролирани алгоритми за обучение, които се използват за класифициране на двоични данни и линейно разделяеми данни. Класифицира точките от данни по хиперплан с максимален марж.
Нелинейните точки с данни също могат да бъдат класифицирани от машини за поддръжка на вектори, използващи трикове на ядрото. Има много приложения на SVM в реалния живот, едно от най-често срещаните приложения е разпознаването на лица и разпознаването на ръкопис.
Честито четене !!
=> Посетете тук за ексклузивната серия за машинно обучение
Препоръчително четене
- Урок за машинно обучение: Въведение в ML и неговите приложения
- Пълно ръководство за изкуствена невронна мрежа в машинното обучение
- Извличане на данни срещу машинно обучение срещу изкуствен интелект срещу дълбоко обучение
- Видове машинно обучение: Контролирано срещу ненаблюдавано обучение
- Въведение в генетичните алгоритми в машинното обучение
- 11 Най-популярни софтуерни инструменти за машинно обучение през 2021 г.
- Топ 13 НАЙ-ДОБРИ компании за машинно обучение (Списък на актуализираните 2021 г.)
- Какво е Java Vector | Урок за Java Vector Class с примери