
Učení z příkladů

Tradiční programování je založené na psaní přesného postupu řešení problému krok za krokem. Mnohé problémy však takto řešit nejde, protože není jasné, jak by takový přesný postup měl vypadat (např. překlad textu, detekce spamu, určení rostliny na fotce). Místo toho můžeme nechat počítač, aby se řešení problému naučil sám z poskytnutých příkladů. Tento přístup se označuje jako strojové učení.
Následující obrázek ilustruje učení z příkladů na problému automatického třídění odpadků na základě naměřené hmotnosti a tvrdosti materiálu. Programátor nepíše konkrétní pravidla, jak rozpoznat papír od plastu, ale volí obecné schéma řešení problému (tzv. model) – v tomto případě přímku – a učicí algoritmus, který hledá vhodné parametry modelu – umístění přímky, aby co nejlépe oddělovala papíry a plasty. Takto naučenou přímku pak lze použít na nové, neznámé příklady – podle toho, na které straně přímky leží. Např. neznámý odpadek na obrázku bychom klasifikovali jako plast.

V reálných problémech využíváme řádově více trénovacích příkladů a jejich atributů. Kromě přímky (tzv. lineární model) existuje řada jiných přístupů, např. metoda nejbližších sousedů, rozhodovací stromy či neuronové sítě.
Metoda nejbližších sousedů
Metoda nejbližších sousedů si ve fázi učení zapamatuje všechny trénovací příklady, pro které potřebuje znát i jejich kategorii (např. plast vs. papír). Nový, neznámý příklad pak klasifikuje tak, že nejprve najde trénovací příklady, které jsou novému příkladu nejblíže (například 3 nejbližší). Neznámý příklad zařadí ho do té kategorie, do které patří většina z těchto nejbližších známých příkladů. Např. neznámý odpadek na obrázku by byl klasifikován jako papír, neboť 2 ze 3 jeho nejbližších sousedů jsou papír.

Rozhodovací stromy
Rozhodovací stromy klasifikují nový příklad pomocí několika podmínek uspořádaných v hierarchické (stromové) struktuře – viz obrázek níže. Takový strom připomíná klasický program s podmínkami. Využití strojového učení je specifické v tom, že tento strom podmínek nezapisuje programátor, ale učí se ho program tak, aby správně klasifikoval poskytnuté trénovací příklady. Vyhodnocování rozhodovacích stromů si můžete procvičit v rozhodovačce Deaktivace bomby: rozhodovací stromy.

Zavřít