ऊपर Emre की टिप्पणी से, Risi Kondor द्वारा मशीन सीखने में समूह सैद्धांतिक विधियों की धारा 4.4 में कर्नेल तरीके बनाने के बारे में विस्तृत जानकारी और प्रमाण हैं जो स्वाभाविक रूप से समरूपता रखते हैं। मैं इसे सहज रूप से सहज रूप में संक्षेपित करूंगा (मैं एक भौतिक विज्ञानी नहीं गणितज्ञ हूं!)।
अधिकांश ML एल्गोरिदम में एक मैट्रिक्स गुणन होता है जैसे,
with इनपुट है और वजन है जिसे हम प्रशिक्षित करना चाहते हैं।si=∑jWij xj=∑jWij (e⃗ j⋅x⃗ )
x⃗ Wij
कर्नेल विधि
कर्नेल विधियों के दायरे में प्रवेश करें और एल्गोरिथ्म को इनपुट इनपुट के माध्यम से जाने दें,
जहां अब हम लिए सामान्यीकरण करते हैं ।si=∑jWij k(ej, x)
x,ej∈X
एक समूह पर विचार करें जो लिए माध्यम से पर कार्य करता है । इस समूह के अंतर्गत हमारे एल्गोरिथ्म को अपरिवर्तनीय बनाने का एक सरल तरीका है कि एक कर्नेल,
with ।GXx→Tg(x)g∈GkG(x,y)=1|G|∑g∈Gk(x,Tg(y))
k(x,y)=k(Tg(x),Tg(y))
तो,
kG(x,Th(y))=1|G|∑g∈Gk(x,Tgh(y))=1|G|∑g∈Gk(x,Tg(y))=1|G|∑g∈Gk(Tg(x),y)
के लिए जो सभी एकात्मक अभ्यावेदन के लिए काम करता है,k(x,y)=x⋅y
kG(x,Th(y))=[1|G|∑g∈GTg(x)]⋅y
जो एक परिवर्तन मैट्रिक्स प्रदान करता है जो एल्गोरिथ्म में इनपुट को सममित कर सकता है।
SO (2) उदाहरण
वास्तव में बस वह समूह जो नक्शे को सादगी के लिए घुमाता है।π2
हमें डेटा पर लीनियर रिग्रेशन जहां हम एक घूर्णी समरूपता की अपेक्षा करते हैं।(x⃗ i,yi)∈R2×R
हमारी अनुकूलन समस्या बन जाती है,
minWjy~i∑i12(yi−y~i)2=∑jWjkG(ej,xi)+bi
कर्नेल संतोषजनक । आप और कई प्रकार की गुठली का भी उपयोग कर सकते हैं ।k(x,y)=∥x−y∥2k(x,y)=k(Tg(x),Tg(y))k(x,y)=x⋅y
इस प्रकार,
kG(ej,xi)=14∑n=14∥R(nπ/2) e⃗ j−x⃗ i∥2=14∑n=14(cos(nπ/2)−x⃗ i1)2+(sin(nπ/2)−x⃗ i2)2=14[2x⃗ 2i1+2x⃗ 2i2+(1−x⃗ i1)2+(1−x⃗ i2)2+(1+x⃗ i1)2+(1+x⃗ i2)2]=x⃗ 2i1+x⃗ 2i2+1
ध्यान दें कि हमें पर योग करने की आवश्यकता नहीं है क्योंकि यह दोनों के लिए समान है। तो हमारी समस्या बन जाती है,
jminWy~i∑i12(yi−y~i)2=W[x⃗ 2i1+x⃗ 2i2+1]+bi
जो अपेक्षित गोलाकार समरूपता पैदा करता है!
टिक टैक् टो
उदाहरण कोड यहाँ देखा जा सकता है । यह दिखाता है कि हम एक मैट्रिक्स कैसे बना सकते हैं जो समरूपता को एन्कोड करता है और इसका उपयोग करता है। ध्यान दें कि यह वास्तव में बुरा है जब मैं वास्तव में इसे चलाता हूं! फिलहाल अन्य गुठली के साथ काम करना।