|
|
||
|---|---|---|
| .. | ||
| lab | ||
| Perceptron.ipynb | ||
| README.md | ||
README.md
рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХреНрд╕рдЪреА рдУрд│рдЦ: рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрди
рдкреВрд░реНрд╡-рд╡реНрдпрд╛рдЦреНрдпрд╛рди рдкреНрд░рд╢реНрдирдордВрдЬреБрд╖рд╛
рдЖрдзреБрдирд┐рдХ рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХрд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА рдЕрдВрдорд▓рд╛рдд рдЖрдгрдгреНрдпрд╛рдЪрд╛ рдкрд╣рд┐рд▓рд╛ рдкреНрд░рдпрддреНрди 1957 рдордзреНрдпреЗ рдХреЙрд░реНрдиреЗрд▓ рдПрд░реЛрдиреЙрдЯрд┐рдХрд▓ рд▓реЕрдмреЛрд░реЗрдЯрд░реАрдЪреЗ рдлреНрд░рдБрдХ рд░реЛрдЭрдирдмреНрд▓рд╛рдЯ рдпрд╛рдВрдиреА рдХреЗрд▓рд╛. рд╣реЗ "рдорд╛рд░реНрдХ-1" рдирд╛рд╡рд╛рдЪреЗ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╣реЛрддреЗ, рдЬреНрдпрд╛рдЪреЗ рдЙрджреНрджрд┐рд╖реНрдЯ рддреНрд░рд┐рдХреЛрдг, рдЪреМрдХреЛрди рдЖрдгрд┐ рд╡рд░реНрддреБрд│ рдпрд╛рдВрд╕рд╛рд░рдЦреНрдпрд╛ рдкреНрд░рд╛рдердорд┐рдХ рднреВрдорд┐рддреАрдп рдЖрдХреГрддреНрдпрд╛ рдУрд│рдЦрдгреЗ рд╣реЛрддреЗ.
![]() |
![]() |
рдкреНрд░рддрд┐рдорд╛ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛рд╡рд░реВрди
рдЗрдирдкреБрдЯ рдкреНрд░рддрд┐рдорд╛ 20x20 рдлреЛрдЯреЛрд╕реЗрд▓ рдЕтАНреЕрд░реЗрджреНрд╡рд╛рд░реЗ рджрд░реНрд╢рд╡рд▓реА рдЬрд╛рдд рд╣реЛрддреА, рддреНрдпрд╛рдореБрд│реЗ рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ 400 рдЗрдирдкреБрдЯреНрд╕ рдЖрдгрд┐ рдПрдХ рдмрд╛рдпрдирд░реА рдЖрдЙрдЯрдкреБрдЯ рд╣реЛрддреЗ. рд╕рд╛рдзреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдПрдХ рдиреНрдпреВрд░реЙрди рд╣реЛрддрд╛, рдЬреНрдпрд╛рд▓рд╛ рдереНрд░реЗрд╢реЛрд▓реНрдб рд▓реЙрдЬрд┐рдХ рдпреБрдирд┐рдЯ рдЕрд╕реЗрд╣реА рдореНрд╣рдгрддрд╛рдд. рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХрдЪреЗ рд╡рдЬрди рдкреЛрдЯреЗрдВрд╢рд┐рдУрдореАрдЯрд░рд╕рд╛рд░рдЦреЗ рдХрд╛рд░реНрдп рдХрд░рдд рд╣реЛрддреЗ, рдЬреНрдпрд╛рд▓рд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдгрд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рдд рдореЕрдиреНрдпреБрдЕрд▓реА рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ.
тЬЕ рдкреЛрдЯреЗрдВрд╢рд┐рдУрдореАрдЯрд░ рдореНрд╣рдгрдЬреЗ рд╕рд░реНрдХрд┐рдЯрдЪрд╛ рдкреНрд░рддрд┐рдХрд╛рд░ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдгрд╛рд░реЗ рдЙрдкрдХрд░рдг.
рддреНрдпрд╛ рдХрд╛рд│рд╛рдд рдиреНрдпреВрдпреЙрд░реНрдХ рдЯрд╛рдЗрдореНрд╕рдиреЗ рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрдирдмрджреНрджрд▓ рд▓рд┐рд╣рд┐рд▓реЗ: рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╕рдВрдЧрдгрдХрд╛рдЪреЗ рдЧрд░реНрдн, рдЬреНрдпрд╛рдЪреА [рдиреМрджрд▓рд╛рд▓рд╛] рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ рдХреА рддреЛ рдЪрд╛рд▓реЗрд▓, рдмреЛрд▓реЗрд▓, рдкрд╛рд╣реАрд▓, рд▓рд┐рд╣реАрд▓, рд╕реНрд╡рддрдГрдЪреА рдкреБрдирд░реБрддреНрдкрддреНрддреА рдХрд░реЗрд▓ рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдЪреА рдЬрд╛рдгреАрд╡ рдареЗрд╡реЗрд▓.
рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрди рдореЙрдбреЗрд▓
рд╕рдордЬрд╛ рдЖрдкрд▓реНрдпрд╛ рдореЙрдбреЗрд▓рдордзреНрдпреЗ N рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЖрд╣реЗрдд, рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдЗрдирдкреБрдЯ рд╡реНрд╣реЗрдХреНрдЯрд░ N рдЖрдХрд╛рд░рд╛рдЪрд╛ рд╡реНрд╣реЗрдХреНрдЯрд░ рдЕрд╕реЗрд▓. рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрди рд╣рд╛ рдмрд╛рдпрдирд░реА рд╡рд░реНрдЧреАрдХрд░рдг рдореЙрдбреЗрд▓ рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗрдЪ рддреЛ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛рдЪреНрдпрд╛ рджреЛрди рд╡рд░реНрдЧрд╛рдВрдордзреНрдпреЗ рдлрд░рдХ рдХрд░реВ рд╢рдХрддреЛ. рдЖрдкрдг рдЧреГрд╣реАрдд рдзрд░реВ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдЗрдирдкреБрдЯ рд╡реНрд╣реЗрдХреНрдЯрд░ x рд╕рд╛рдареА рдЖрдордЪреНрдпрд╛ рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрдирдЪрд╛ рдЖрдЙрдЯрдкреБрдЯ +1 рдХрд┐рдВрд╡рд╛ -1 рдЕрд╕реЗрд▓, рд╡рд░реНрдЧрд╛рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди. рдЖрдЙрдЯрдкреБрдЯ рдЦрд╛рд▓реАрд▓ рд╕реВрддреНрд░рд╛рджреНрд╡рд╛рд░реЗ рдЧрдгрдирд╛ рдХреЗрд▓реА рдЬрд╛рдИрд▓:
y(x) = f(wTx)
рдЬрд┐рдереЗ f рд╣рд╛ рдПрдХ рд╕реНрдЯреЗрдк рдЕтАНреЕрдХреНрдЯрд┐рд╡реЗрд╢рди рдлрдВрдХреНрд╢рди рдЖрд╣реЗ
рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрдирдЪреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг
рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрдирдЪреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЕрд╕реЗ рд╡рдЬрди рд╡реНрд╣реЗрдХреНрдЯрд░ w рд╢реЛрдзрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рдЬреЗ рдмрд╣реБрддреЗрдХ рдореВрд▓реНрдпреЗ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд░рддреЗ, рдореНрд╣рдгрдЬреЗрдЪ рд╕рд░реНрд╡рд╛рдд рдХрдореА рддреНрд░реБрдЯреА рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ. рд╣реА рддреНрд░реБрдЯреА E рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрди рдирд┐рдХрд╖рджреНрд╡рд╛рд░реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ:
E(w) = -тИСwTxiti
рдЬрд┐рдереЗ:
- рдпреЛрдЧ рддреНрдпрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯреНрд╕ i рд╡рд░ рдШреЗрддрд▓рд╛ рдЬрд╛рддреЛ рдЬреНрдпрд╛рдореБрд│реЗ рдЪреБрдХреАрдЪреЗ рд╡рд░реНрдЧреАрдХрд░рдг рд╣реЛрддреЗ
- xi рдореНрд╣рдгрдЬреЗ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛, рдЖрдгрд┐ ti рд╣реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдЖрдгрд┐ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╛рдареА рдЕрдиреБрдХреНрд░рдореЗ -1 рдХрд┐рдВрд╡рд╛ +1 рдЖрд╣реЗ.
рд╣рд╛ рдирд┐рдХрд╖ рд╡рдЬрди w рдЪреНрдпрд╛ рдлрдВрдХреНрд╢рди рдореНрд╣рдгреВрди рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЖрдгрд┐ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдЪреЗ рдХрдореАрдХрд░рдг рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ. рдЕрдиреЗрдХрджрд╛, рдЧреНрд░реЗрдбрд┐рдпрдВрдЯ рдбрд┐рд╕реЗрдВрдЯ рдирд╛рд╡рд╛рдЪреА рдкрджреНрдзрдд рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдЖрдкрдг рдХрд╛рд╣реА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рдЬрди w(0) рд╕рд╣ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рддреЛ рдЖрдгрд┐ рдирдВрддрд░ рдкреНрд░рддреНрдпреЗрдХ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдЦрд╛рд▓реАрд▓ рд╕реВрддреНрд░рд╛рдиреБрд╕рд╛рд░ рд╡рдЬрди рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЛ:
w(t+1) = w(t) - ╬╖тИЗE(w)
рдЗрдереЗ ╬╖ рдореНрд╣рдгрдЬреЗ рд▓рд░реНрдирд┐рдВрдЧ рд░реЗрдЯ, рдЖрдгрд┐ тИЗE(w) рдореНрд╣рдгрдЬреЗ E рдЪрд╛ рдЧреНрд░реЗрдбрд┐рдпрдВрдЯ. рдЧреНрд░реЗрдбрд┐рдпрдВрдЯрдЪреА рдЧрдгрдирд╛ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдорд┐рд│рддреЗ:
w(t+1) = w(t) + тИС╬╖xiti
Python рдордзреАрд▓ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдЕрд╕реЗ рджрд┐рд╕рддреЗ:
def train(positive_examples, negative_examples, num_iterations = 100, eta = 1):
weights = [0,0,0] # Initialize weights (almost randomly :)
for i in range(num_iterations):
pos = random.choice(positive_examples)
neg = random.choice(negative_examples)
z = np.dot(pos, weights) # compute perceptron output
if z < 0: # positive example classified as negative
weights = weights + eta*weights.shape
z = np.dot(neg, weights)
if z >= 0: # negative example classified as positive
weights = weights - eta*weights.shape
return weights
рдирд┐рд╖реНрдХрд░реНрд╖
рдпрд╛ рдзрдбреНрдпрд╛рдд, рддреБрдореНрд╣реА рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрдирдмрджреНрджрд▓ рд╢рд┐рдХрд▓реЗ, рдЬреЛ рдПрдХ рдмрд╛рдпрдирд░реА рд╡рд░реНрдЧреАрдХрд░рдг рдореЙрдбреЗрд▓ рдЖрд╣реЗ, рдЖрдгрд┐ рд╡рдЬрди рд╡реНрд╣реЗрдХреНрдЯрд░ рд╡рд╛рдкрд░реВрди рддреНрдпрд╛рдЪреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрд╕реЗ рджреНрдпрд╛рдпрдЪреЗ рддреЗ рд╢рд┐рдХрд▓реЗ.
ЁЯЪА рдЖрд╡реНрд╣рд╛рди
рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓, рддрд░ Microsoft Learn рд╡рд░реАрд▓ рд╣рд╛ рдкреНрд░рдпреЛрдЧ рд╡рд╛рдкрд░реВрди рдкрд╣рд╛, рдЬреЛ Azure ML designer рд╡рд╛рдкрд░рддреЛ.
рд╡реНрдпрд╛рдЦреНрдпрд╛рдирд╛рдирдВрддрд░рдЪреА рдкреНрд░рд╢реНрдирдордВрдЬреБрд╖рд╛
рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдЖрдгрд┐ рд╕реНрд╡-рдЕрднреНрдпрд╛рд╕
рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрдирдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдЦреЗрд│рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рддрд╕реЗрдЪ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рдирд╛рддреАрд▓ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд╕реЗ рдХрд░рддрд╛ рдпреЗрдИрд▓ рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╢рд┐рдХрдгреЗ рд╕реБрд░реВ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА Perceptron рдиреЛрдЯрдмреБрдХрдХрдбреЗ рдЬрд╛.
рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрдирдмрджреНрджрд▓ рдПрдХ рдордиреЛрд░рдВрдЬрдХ рд▓реЗрдЦ рджреЗрдЦреАрд▓ рдЖрд╣реЗ.
рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ
рдпрд╛ рдзрдбреНрдпрд╛рдд, рдЖрдкрдг рдмрд╛рдпрдирд░реА рд╡рд░реНрдЧреАрдХрд░рдг рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рдкрд░рд╕реЗрдкреНрдЯреНрд░реЙрди рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓рд╛ рдЖрд╣реЗ, рдЖрдгрд┐ рдЖрдкрдг рджреЛрди рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рдЕрдВрдХрд╛рдВрдордзреНрдпреЗ рд╡рд░реНрдЧреАрдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ. рдпрд╛ рдкреНрд░рдпреЛрдЧрд╛рдд, рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдВрдХ рд╡рд░реНрдЧреАрдХрд░рдгрд╛рдЪреА рд╕рдорд╕реНрдпрд╛ рдкреВрд░реНрдгрдкрдгреЗ рд╕реЛрдбрд╡рд╛рдпрдЪреА рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ рджрд┐рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддрд┐рдореЗрд╕рд╛рдареА рдХреЛрдгрддрд╛ рдЕрдВрдХ рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ рддреЗ рдард░рд╡рд╛рдпрдЪреЗ рдЖрд╣реЗ.

