
рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░, рдореБрдЭреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛
PyBrain рдкрд╕рдВрдж рдЖрдпрд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЗрд╕рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗред
PyBrain рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЛ рд╕реАрдЦрдиреЗ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ Python рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╣ рдорд╢реАрди рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдПрдХ рдмрдбрд╝реЗ рд╕реЗрдЯ рдХреЗ рдЕрдЪреНрдЫреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдХреЙрдореНрдкреИрдХреНрдЯ рдкрд╛рдпрдерди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛:
- рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ - рд╡рд┐рднрд┐рдиреНрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рджрд░реНрдЬрдиреЛрдВ рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдирд╣реАрдВред
- рдЫрд╛рддреНрд░ - PyBrain рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдереАрд╕рд┐рд╕ рдореЗрдВ рд╣реЛрдорд╡рд░реНрдХ, рдХреЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдпрд╛ рдЧрдгрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд▓рдЪреАрд▓рд╛рдкрди рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЬрдЯрд┐рд▓ рддрд░реАрдХреЛрдВ, рд╕рдВрд░рдЪрдирд╛рдУрдВ рдФрд░ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
- рд╡реНрдпрд╛рдЦреНрдпрд╛рддрд╛ - рд▓рд░реНрдирд┐рдВрдЧ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рддрдХрдиреАрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рддреЗ рд╕рдордп рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдереАред рд▓реЗрдЦрдХ рдЦреБрд╢ рд╣реЛрдВрдЧреЗ рдЕрдЧрд░ рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕рдХреНрд╖рдо рдЫрд╛рддреНрд░реЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗред
- рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдирдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдкрд╛рдпрдмреНрд░рд┐рдпрди рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рд╢реЛрдзрдХрд░реНрддрд╛ рдХреЛ рд▓рдЪреАрд▓рд╛, рдЖрд╕рд╛рди рдЙрдкрдпреЛрдЧ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ, рдкрд░реАрдХреНрд╖рдг рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреА рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд╛рдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рд╣реИрдВред
PyBrain рдирд╛рдо рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо рд╣реИ: рдкрд╛рдпрдерди-рдЖрдзрд╛рд░рд┐рдд рд╕реБрджреГрдвреАрдХрд░рдг рд╕реАрдЦрдирд╛, рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдФрд░ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реАред
рдЬреИрд╕рд╛ рдХрд┐ рдПрдХ рд╕рд╛рдЗрдЯ рдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ:
PyBrain - рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рд╕ рд╕реЗрдирд╛ рдЪрд╛рдХреВ (PyBrain рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рд╕реНрд╡рд┐рд╕ рд╕реЗрдирд╛ рдЪрд╛рдХреВ рд╣реИ)ред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдЫрд╛рддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрди рдореВрд▓ рдмрд╛рддреЗрдВ рдФрд░ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрд░рдЪрдирд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЧрдИ рд╣реИ:

рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд╡рдпрдВ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдЙрддреНрдкрд╛рдж рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдХреИрд╡рд┐рдПрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ; рдЬрдм рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рд╢реЛрдз рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреБрд╕реНрддрдХ рдХреЛ рдЙрджреНрдзреГрдд рд╕реВрдЪрдирд╛ рд╕реНрд░реЛрддреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ (рдЬреЛ рд▓реЛрдЧ рдХрд░рддреЗ рд╣реИрдВ):
рдЯреЙрдо рд╢рд╛рд╣реБрд▓, рдЬрд╕реНрдЯрд┐рди рдмрд╛рдпрд░, рдбреИрди рд╡рд┐рдПрд╕реНрдЯреНрд░рд╛, рд╕рди рдпреА, рдорд╛рд░реНрдЯрд┐рди рдлреЗрд▓реНрдбрд░, рдлреНрд░реИрдВрдХ рд╕реЗрдиреНрдХреЗ, рдереЙрдорд╕ рд░реБрдХреАрд╕реНрдЯреЛ, рдЬреБрд░рдЧреЗрди рд╢реНрдорд┐рдзреБрдмрд░ред PyBrainред рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП: рдЬрд░реНрдирд▓ рдСрдл рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд░рд┐рд╕рд░реНрдЪ, 2010ред
рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ (рд╕рдВрд╕реНрдХрд░рдг 0.3 рдХреЗ рд▓рд┐рдП) рд╣реИрдВ:
рдиреЗрдЯрд╡рд░реНрдХ
PyBrain рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд▓рдЧрднрдЧ рд╕рднреА рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдЙрдкрдХрд░рдг
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдРрд╕реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ:
- рднрд╡рди / рджреГрд╢реНрдп рдЪрд╛рд░реНрдЯ
- NetCDF рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ
- XML рд▓рд┐рдЦрдирд╛ / рдкрдврд╝рдирд╛
рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд╛рдкрдирд╛
Pybrain рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдирд┐рд░реНрдорд╛рддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА
рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ:
рд╕реЗрдкреНрдЯреБрдкреВрд▓рд╕ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╣реИ рдЬреЛ рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд (python ez_setup.py) рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рд╣реИред
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрдЧрд╛
easy_install
рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╣рдо рддреБрд░рдВрдд рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рджреЛ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ:
$ easy_install scipy $ easy_install matplotlib
рдЗрд╕рдХреЗ рдмрд╛рдж, PyBrain рд╕реНрд╡рдпрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореВрд▓ рдмрд╛рддреЗрдВ
рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ
рджреЛ рдЗрдирдкреБрдЯ, рддреАрди рдЫрд┐рдкреА рдкрд░рддреЛрдВ рдФрд░ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдирд╛:
>>> from pybrain.tools.shortcuts import buildNetwork >>> net = buildNetwork(2, 3, 1)
рдирддреАрдЬрддрди, рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рддрдВрддреНрд░рд┐рдХрд╛ рд╕рд░реНрдХрд┐рдЯ, рднрд╛рд░ рдХреЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрд░рдВрднреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╢реБрджреНрдз рд╡рд╕реНрддреБ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред
рд╕рдХреНрд░рд┐рдпрдг рд╕рдорд╛рд░реЛрд╣
рд╕рдХреНрд░рд┐рдпрдг рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
net.activate([2, 1])
рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрдирдкреБрдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕рд░рдгреА рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдПрдХ рд╡рд┐рд▓рдХреНрд╖рдг рдЙрддреНрддрд░ рджреЗрддреА рд╣реИред
рдиреЗрдЯрд╡рд░реНрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рд╡рд░реНрддрдорд╛рди рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХрд╛ рдПрдХ рдирд╛рдо рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рддреЗ рд╕рдордп рдпрд╣ рдирд╛рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдпрд╛ рдЕрдиреНрдп рдорд╛рдирджрдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрдЯ рдХреЗ рд▓рд┐рдП, рдирд╛рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджрд┐рдП рдЧрдП рд╣реИрдВ:
>>> net['in'] <LinearLayer 'in'> >>> net['hidden0'] <SigmoidLayer 'hidden0'> >>> net['out'] <LinearLayer 'out'>
рдЫрд┐рдкреА рд╣реБрдИ рдкрд░рддреЛрдВ рдХреЛ рдирд╛рдо рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рдкрд░рдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛рдПрдБ
рдмреЗрд╢рдХ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдирд┐рд░реНрдорд┐рдд рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕рд┐рдЧреНрдореЙрдЗрдб рд╕рдХреНрд░рд┐рдпрдг рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫрд┐рдкреА рд╣реБрдИ рдкрд░рдд рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:
- BiasUnit
- GaussianLayer
- LinearLayer
- LSTMLayer
- MDLSTMLayer
- SigmoidLayer
- SoftmaxLayer
- StateDependentLayer
- TanhLayer
>>> from pybrain.structure import TanhLayer >>> net = buildNetwork(2, 3, 1, hiddenclass=<b>TanhLayer</b>) >>> net['hidden0'] <TanhLayer 'hidden0'>
рдЖрдЙрдЯрдкреБрдЯ рд▓реЗрдпрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ:
>>> from pybrain.structure import SoftmaxLayer >>> net = buildNetwork(2, 3, 2, hiddenclass=TanhLayer, outclass=SoftmaxLayer) >>> net.activate((2, 3)) array([ 0.6656323, 0.3343677])
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
>>> net = buildNetwork(2, 3, 1, bias=True) >>> net['bias'] <BiasUnit 'bias'>
рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ (рдПрдХ рдбрд╛рдЯрд╛рд╕реЗрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг)
рдирд┐рд░реНрдорд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдпрд╣ рдЕрдиреБрднрд╛рдЧ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PyBrain pybrain.dataset рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ SupervisedDataSet рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдж рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбреЗрдЯрд╛ рд╕реЗрдЯрд┐рдВрдЧ
SupervisedDataSet рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╢рд┐рдХреНрд╖рдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдЙрдЯрдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдХрдХреНрд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рддреЗ рд╕рдордп рдЙрдирдХреЗ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
рд░рд┐рдХреЙрд░реНрдб рджреГрд╢реНрдп:
>>> from pybrain.datasets import SupervisedDataSet >>> ds = SupervisedDataSet(2, 1)
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рджреЛ-рдЖрдпрд╛рдореА рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдФрд░ рдПрдХ-рдЖрдпрд╛рдореА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдИ рдЬрд╛ рд░рд╣реА рд╣реИред
рдирдореВрдиреЗ рдЬреЛрдбрд╝рдирд╛
рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдХрд╛рд░реНрдп XOR рдлрд╝рдВрдХреНрд╢рди рд╕реАрдЦ рд░рд╣рд╛ рд╣реИ, рдлрд┐рд░ рдРрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
>>> ds.addSample((0, 0), (0,)) >>> ds.addSample((0, 1), (1,)) >>> ds.addSample((1, 0), (1,)) >>> ds.addSample((1, 1), (0,))
рдирдореВрдирд╛ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЕрдзреНрдпрдпрди
рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рд░рдгрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдкрд╛рдпрдерди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
>>> len(ds)
4 рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред
рд╕реЗрдЯ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рднреА рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
>>> for inpt, target in ds: print inpt, target
... [ 0. 0.] [ 0.] [ 0. 1.] [ 1.] [ 1. 0.] [ 1.] [ 1. 1.] [ 0.]
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реАрд▓реНрдб рдХреЛ рдЙрд╕рдХреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
>>> ds['input']
array([[ 0., 0.], [ 0., 1.], [ 1., 0.], [ 1., 1.]])
>>> ds['target']
array([[ 0.], [ 1.], [ 1.], [ 0.]])
рдЖрдк рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛рдХрд░ рдирдореВрдирд╛ рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдореБрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
>>> ds.clear() >>> ds['input']
array([], shape=(0, 2), dtype=float64)
>>> ds['target']
array([], shape=(0, 1), dtype=float64)
рдирдореВрдиреЛрдВ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг
PyBrain рдПрдХ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢рд┐рдХреНрд╖рдХреЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЯреНрд░реЗрдирд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдирдореВрдиреЛрдВ рдХреЗ рд╕реЗрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдореА рд╕реЗрдЯ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдмреИрдХрдкреНрд░реЛрдкреИрдЬреЗрд╢рди рд╣реИред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, PyBrain рдХрд╛ рдмреИрдХрдкреНрд░реЙрдкрдЯреНрд░реЗрдирд░ рд╡рд░реНрдЧ рд╣реИред
>>> from pybrain.supervised.trainers import BackpropTrainer
рдирдореВрдиреЛрдВ (рдбреАрдПрд╕) рдФрд░ рд▓рдХреНрд╖реНрдп рдиреЗрдЯрд╡рд░реНрдХ (рдиреЗрдЯ) рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдм рд╡реЗ рд╕рдВрдпреБрдХреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред
>>> net = buildNetwork(2, 3, 1, bias=True, hiddenclass=TanhLayer) >>> trainer = BackpropTrainer(net, ds)
рдЯреНрд░реЗрдирд░ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдФрд░ рд╡рд╣ рдЗрд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
>>> trainer.train()
0.31516384514375834
рдЯреНрд░реЗрди () рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХрд╛ рдПрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ (рдпреБрдЧ) рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреНрд╡рд┐рдШрд╛рдд рддреНрд░реБрдЯрд┐ (рддреНрд░реБрдЯрд┐ рдХреЗ рджреЛрд╣рд░реЗ рдЖрдиреБрдкрд╛рддрд┐рдХ) рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрдХреНрд░ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрднрд┐рд╕рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рдзрд┐ рд╣реИ:
>>> trainer.trainUntilConvergence()
рдпрд╣ рд╡рд┐рдзрд┐ рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛рдПрдЧреАред
рд╡рд┐рднрд┐рдиреНрди рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг
рд▓реЗрдЦ рдореЗрдВ
рдЯреЙрдо рд╢рд╛рд╣реБрд▓, рдорд╛рд░реНрдЯрд┐рди рдлреЗрд▓реНрдбрд░, et.al. PyBrain, рдЬрд░реНрдирд▓ рдСрдл рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд░рд┐рд╕рд░реНрдЪ 11 (2010) 743-746ред
.mat рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреБрдЫ рд▓рд┐рдВрдХ:
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓рддреА рд╣реИ, рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрдб рдХреЗ рд╡рд┐рд▓реНрд╕ рдореЗрдВ рдЕрдкрдиреА рд╕реНрдкрд╖реНрдЯрддрд╛ рдирд╣реАрдВ рдЦреЛрддреЗ рд╣реИрдВред
PS рдпрджрд┐ рдХреБрдЫ рд╢рдмреНрджреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рд╣реИрдВ, рддреЛ рдореИрдВ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ, рдореИрдВ рдХреБрдЫ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреА 100% рд╕рдЯреАрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдирд╛рдо рд╣реИрдВред