Дэмжлэгийн вектор машинууд (SVMs) нь ангилал болон регрессийн даалгаварт ашиглагддаг, хяналттай сургалтын хүчирхэг алгоритм юм. SVM-ийн үндсэн зорилго нь өндөр хэмжээст орон зайд өөр өөр ангиудын өгөгдлийн цэгүүдийг хамгийн сайн тусгаарлах оновчтой гипер хавтгайг олох явдал юм. SVM дахь олонлогийн шинж чанаруудын ангилал нь шийдвэрийн функцтэй, ялангуяа түүний тэмдэгтэй гүнзгий холбоотой байдаг бөгөөд энэ нь тухайн өгөгдлийн цэг нь гипер хавтгайн аль талд байрлаж байгааг тодорхойлоход чухал үүрэг гүйцэтгэдэг.
SVM дахь шийдвэрийн функц
SVM-ийн шийдвэрийн функцийг дараах байдлаар илэрхийлж болно.
хаана:
- нь гипер хавтгайн чиглэлийг тодорхойлох жингийн вектор юм.
- нь ангилж буй өгөгдлийн цэгийн онцлог вектор юм.
- нь гипер хавтгайг шилжүүлдэг хэвийсэн нэр томъёо юм.
Өгөгдлийн цэгийг ангилах , шийдвэрийн функцийн тэмдгийг ашиглана:
Энэ тэмдэг нь өгөгдлийн цэг байрлах гипер хавтгайн талыг тодорхойлно.
Ангилал дахь тэмдгийн үүрэг
Шийдвэр гаргах функцийн тэмдэг () нь өгөгдлийн цэгт хуваарилагдсан ангийн шошгыг шууд тодорхойлдог
. Энэ нь хэрхэн ажилладагийг энд харуулав.
1. Эерэг тэмдэг: Хэрэв , шийдвэрийн функцийн тэмдэг эерэг байна. Энэ нь өгөгдлийн цэг гэсэн үг юм
эерэг анги байрлаж байгаа гипер хавтгайн талд байрладаг. Тиймээс,
эерэг ангилалд хамаарах гэж ангилдаг (ихэвчлэн +1 гэж тэмдэглэдэг).
2. Сөрөг тэмдэг: Хэрэв , шийдвэрийн функцийн тэмдэг сөрөг байна. Энэ нь өгөгдлийн цэг байгааг харуулж байна
сөрөг анги байрладаг гиперплангийн талд байрладаг. Тиймээс,
сөрөг ангилалд хамаарах гэж ангилдаг (ихэвчлэн -1 гэж тэмдэглэдэг).
3. Тэг: Ховор тохиолдолд хаана , өгөгдлийн цэг
яг гиперплан дээр байрладаг. Энэ хувилбар нь онолын хувьд боломжтой боловч бодит үнэ цэнэтэй өгөгдлийн тасралтгүй шинж чанараас шалтгаалан практикт ховор тохиолддог.
Геометрийн тайлбар
Шийдвэрлэх функцийн геометрийн тайлбар нь SVM-ууд өгөгдлийн цэгүүдийг хэрхэн ангилж байгааг ойлгоход зайлшгүй шаардлагатай. Гипер хавтгайг тодорхойлсон хоёр ангийн хоорондох шийдвэрийн хилийн үүрэг гүйцэтгэдэг. Энэ гиперплангийн чиглэл ба байрлалыг жингийн вектороор тодорхойлно
болон хэвийсэн нэр томъёо
.
1. Маржийн: Хэмжээ нь анги тус бүрийн хамгийн ойрын өгөгдлийн цэгүүд болон гипер хавтгай хоорондын зай юм. SVM нь гипер хавтгай нь ангиудыг тусгаарлаад зогсохгүй хамгийн ойрын өгөгдлийн цэгүүдээс хамгийн их зайтай байхын тулд энэ зөрүүг нэмэгдүүлэх зорилготой юм. Эдгээр хамгийн ойр өгөгдлийн цэгүүдийг дэмжих векторууд гэж нэрлэдэг.
2. Дэмжих векторууд: Туслах векторууд нь гипер хавтгайд хамгийн ойр байрлах өгөгдлийн цэгүүд юм. Эдгээр нь гиперплангийн байрлал, чиглэлийг тодорхойлоход маш чухал юм. Эдгээр дэмжлэгийн векторуудын байрлал дахь аливаа өөрчлөлт нь гиперпланг өөрчилнө.
Жишээ нь
Бидэнд хоёр ангиллын өгөгдлийн цэгүүд бүхий хоёр хэмжээст функцийн орон зай байгаа энгийн жишээг авч үзье. Эерэг ангийг +1, сөрөг ангийг -1 гэж тэмдэглэе. Жингийн вектор гэж бодъё болон хэвийсэн нэр томъёо
.
Өгөгдлийн цэгийн хувьд , бид шийдвэрийн функцийг дараах байдлаар тооцоолж болно.
оноос хойш , шийдвэрийн функцийн тэмдэг эерэг, улмаар өгөгдлийн цэг
эерэг ангилалд хамаарагдана (+1).
Өөр нэг мэдээллийн цэгийн хувьд , бид шийдвэрийн функцийг дараах байдлаар тооцоолно.
Дахин хэлэхэд, , тэгэхээр тэмдэг нь эерэг, ба
эерэг ангилалд хамаарагдана (+1).
Одоо өгөгдлийн цэгийг авч үзье :
Энэ тохиолдолд, , тэгэхээр тэмдэг нь сөрөг, ба
сөрөг ангилалд хамаарагдана (-1).
Математик томъёолол
SVM-ийн математик томъёолол нь оновчтойг олохын тулд оновчлолын асуудлыг шийдвэрлэхэд оршино болон
сургалтын өгөгдлийг зөв ангилахын зэрэгцээ ахиу хэмжээг нэмэгдүүлэх. Оновчлолын асуудлыг дараах байдлаар илэрхийлж болно.
хаана нь өгөгдлийн цэгийн ангийн шошго юм
, мөн хязгаарлалт нь бүх өгөгдлийн цэгүүдийг хамгийн багадаа 1-ийн зөрүүтэй зөв ангилахыг баталгаажуулдаг.
Цөмийн трик
Олон практик хэрэглээнд өгөгдөл нь анхны функцын орон зайд шугаман байдлаар хуваагддаггүй байж болно. Үүнийг шийдвэрлэхийн тулд SVM-үүдийг цөмийн заль мэхийг ашиглан шугаман бус ангилалд шилжүүлж болно. Цөмийн функц өгөгдлийг шугаман тусгаарлах боломжтой өндөр хэмжээст орон зайд далд байдлаар буулгана. Түгээмэл хэрэглэгддэг цөмийн функцуудад олон гишүүнт цөм, радиаль суурь функц (RBF) цөм, сигмоид цөм орно.
Цөмжүүлсэн SVM дахь шийдвэрийн функц нь:
хаана нь оновчлолын бодлогын хос хэлбэрээс олж авсан Лагранжийн үржүүлэгчид юм.
Python хэрэгжилт
Python-д `scikit-learn` номын сан нь `SVC` ангиар дамжуулан SVM-ийг шууд хэрэгжүүлэх боломжийг олгодог. Өгөгдлийн багцыг ангилахад `SVC`-г хэрхэн ашиглах жишээг доор харуулав.
python from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.svm import SVC from sklearn.metrics import accuracy_score # Load the dataset iris = datasets.load_iris() X = iris.data y = iris.target # Select only two classes for binary classification X = X[y != 2] y = y[y != 2] # Split the dataset into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Create an SVM classifier with a linear kernel clf = SVC(kernel='linear') # Train the classifier clf.fit(X_train, y_train) # Predict the class labels for the test set y_pred = clf.predict(X_test) # Calculate the accuracy of the classifier accuracy = accuracy_score(y_test, y_pred) print(f'Accuracy: {accuracy * 100:.2f}%')
Энэ жишээнд `SVC` анги нь шугаман цөм бүхий SVM ангилагчийг үүсгэхэд ашиглагддаг. Ангилагчийг сургалтын багц дээр сургаж, нарийвчлалыг тестийн багц дээр үнэлдэг. SVM дахь шинж чанарын багцын ангилал нь шийдвэрийн функцийн тэмдгээс үндсэндээ хамаардаг. . Энэ тэмдэг нь өгөгдлийн цэг нь гипер хавтгайн аль талд байгааг тодорхойлж, улмаар түүнийг харгалзах ангид хуваарилдаг. Шийдвэрлэх функц, оновчтой гипер хавтгайг олох оновчлолын үйл явц, шугаман бус салгах чадварыг зохицуулах цөмийн функцуудыг ашиглах боломж зэрэг нь SVM-ийн чухал бүрэлдэхүүн хэсэг юм. Эдгээр талыг ойлгох нь SVM-үүд хэрхэн ажилладаг, тэдгээрийг янз бүрийн машин сургалтын ажилд ашиглах талаар цогц ойлголтыг өгдөг.
Сүүлийн үеийн бусад асуулт, хариулт Python ашиглан EITC/AI/MLP Machine Learning:
- Шугаман регрессийн b параметрийг (хамгийн сайн тохирох шугамын y огтлолцол) хэрхэн тооцдог вэ?
- SVM-ийн шийдвэрийн хил хязгаарыг тодорхойлоход туслах векторууд ямар үүрэг гүйцэтгэдэг вэ, сургалтын явцад тэдгээрийг хэрхэн тодорхойлдог вэ?
- SVM оновчлолын хүрээнд `w` ба хазайлт `b` жингийн векторын ач холбогдол юу вэ, тэдгээрийг хэрхэн тодорхойлдог вэ?
- SVM-ийн хэрэгжилтэд "визуал" аргын зорилго юу вэ, энэ нь загварын гүйцэтгэлийг ойлгоход хэрхэн тусалдаг вэ?
- SVM-ийн хэрэгжилтийн 'урьдчилан таамаглах' арга нь шинэ өгөгдлийн цэгийн ангиллыг хэрхэн тодорхойлдог вэ?
- Машин сургалтын хүрээнд дэмжих вектор машин (SVM)-ийн үндсэн зорилго юу вэ?
- Python дээр SVM ангиллыг хэрэгжүүлэхийн тулд scikit-learn гэх мэт сангуудыг хэрхэн ашиглаж болох вэ, үүнд хамаарах гол функцууд юу вэ?
- SVM оновчлол дахь хязгаарлалтын (y_i (mathbf{x}_i cdot mathbf{w} + b) geq 1) ач холбогдлыг тайлбарла.
- SVM оновчлолын асуудлын зорилго юу вэ, түүнийг математикийн хувьд хэрхэн томъёолсон бэ?
- Дэмжих вектор машинуудын (SVM) контекст дэх гипер хавтгай тэгшитгэл (mathbf{x} cdot mathbf{w} + b = 0) ямар үүрэг гүйцэтгэдэг вэ?
Python ашиглан EITC/AI/MLP Machine Learning-д илүү олон асуулт, хариултыг харна уу