Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Siirtäminen Oppiminen Tietokonenäössä | Edistyneiden Aiheiden Yleiskatsaus
Tietokonenäön Perusteet

bookSiirtäminen Oppiminen Tietokonenäössä

Siirtäminen oppiminen mahdollistaa suurilla tietoaineistoilla koulutettujen mallien uudelleenkäytön uusiin tehtäviin, joissa dataa on rajallisesti. Sen sijaan, että rakennettaisiin neuroverkko alusta alkaen, hyödynnetään esikoulutettuja malleja tehokkuuden ja suorituskyvyn parantamiseksi. Tämän kurssin aikana olet jo kohdannut vastaavia lähestymistapoja aiemmissa osioissa, jotka ovat luoneet perustan siirto-oppimisen tehokkaalle soveltamiselle.

Mikä on siirto-oppiminen?

Siirto-oppiminen on tekniikka, jossa yhdellä tehtävällä koulutettu malli mukautetaan toiseen, siihen liittyvään tehtävään. Tietokonenäössä suurilla tietoaineistoilla, kuten ImageNet, esikoulutetut mallit voidaan hienosäätää erityissovelluksiin, kuten lääketieteelliseen kuvantamiseen tai autonomiseen ajamiseen.

transfer_learning_idea

Miksi siirtoppiminen on tärkeää?

  • Lyhentää koulutusaikaa: koska malli on jo oppinut yleisiä piirteitä, tarvitaan vain pieniä säätöjä;
  • Vaatii vähemmän dataa: hyödyllinen tilanteissa, joissa merkityn datan hankkiminen on kallista;
  • Parantaa suorituskykyä: esikoulutetut mallit tarjoavat vankan piirteiden tunnistuksen, mikä parantaa tarkkuutta.

Siirtoppimisen työnkulku

Tyypillinen siirtoppimisen työnkulku sisältää useita keskeisiä vaiheita:

  1. Esikoulutetun mallin valinta:

    • Valitse malli, joka on koulutettu suurella tietoaineistolla (esim. ResNet, VGG, YOLO);
    • Nämä mallit ovat oppineet hyödyllisiä esityksiä, joita voidaan mukauttaa uusiin tehtäviin.
  2. Esikoulutetun mallin muokkaaminen:

    • Piirteiden poiminta: jäädytä alkuvaiheen kerrokset ja kouluta vain myöhemmät kerrokset uudelle tehtävälle;
    • Hienosäätö: vapauta osa tai kaikki kerrokset ja kouluta ne uudelleen uudella tietoaineistolla.
  3. Koulutus uudella tietoaineistolla:

    • Kouluta muokattu malli käyttäen pienempää, kohdetehtävään liittyvää tietoaineistoa;
    • Optimoi käyttäen tekniikoita kuten takaisinkytkentä ja häviöfunktiot.
  4. Arviointi ja iterointi:

    • Arvioi suorituskykyä mittareilla kuten tarkkuus, precisio, herkkyys ja mAP;
    • Hienosäädä tarvittaessa tulosten parantamiseksi.

Suositut esikoulutetut mallit

Joitakin laajimmin käytettyjä esikoulutettuja malleja tietokonenäössä ovat:

  • ResNet: syvät jäännösverkot, jotka mahdollistavat erittäin syvien arkkitehtuurien koulutuksen;
  • VGG: yksinkertainen arkkitehtuuri, jossa on yhtenäiset konvoluutiokerrokset;
  • EfficientNet: optimoitu korkeaan tarkkuuteen vähemmillä parametreilla;
  • YOLO: huipputason (SOTA) reaaliaikainen objektintunnistus.

Hienosäätö vs. ominaisuuksien erottelu

Ominaisuuksien erottelu tarkoittaa esikoulutetun mallin kerrosten käyttämistä kiinteinä ominaisuuksien erottelijoina. Tässä lähestymistavassa alkuperäisen mallin viimeinen luokittelukerros poistetaan ja korvataan uudella, kohdetehtävään sopivalla kerroksella. Esikoulutetut kerrokset pidetään jäädytettyinä, eli niiden painoja ei päivitetä koulutuksen aikana, mikä nopeuttaa koulutusta ja vaatii vähemmän dataa.

from tensorflow.keras.applications import VGG16
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, Flatten

base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
for layer in base_model.layers:
    layer.trainable = False  # Freeze base model layers

x = Flatten()(base_model.output)
x = Dense(256, activation='relu')(x)
x = Dense(10, activation='softmax')(x)  # Task-specific output

model = Model(inputs=base_model.input, outputs=x)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Hienosäätö puolestaan menee askeleen pidemmälle vapauttamalla joitakin tai kaikki esikoulutetut kerrokset ja kouluttamalla niitä uudelleen uudella aineistolla. Tämä mahdollistaa mallin mukauttaa opitut ominaisuudet tarkemmin uuden tehtävän erityispiirteisiin, mikä usein parantaa suorituskykyä—erityisesti silloin, kun uusi aineisto on riittävän suuri tai poikkeaa merkittävästi alkuperäisestä koulutusaineistosta.

for layer in base_model.layers[-10:]:  # Unfreeze last 10 layers
    layer.trainable = True

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Siirtoloppuoppimisen sovellukset

transfer_learning_uses

1. Kuvien luokittelu

Kuvien luokittelu tarkoittaa kuvien merkitsemistä tunnisteilla niiden visuaalisen sisällön perusteella. Esikoulutetut mallit, kuten ResNet ja EfficientNet, voidaan mukauttaa erityistehtäviin, kuten lääketieteelliseen kuvantamiseen tai villieläinten luokitteluun.

Esimerkki:

  • Valitse esikoulutettu malli (esim. ResNet);
  • Muokkaa luokittelukerrosta vastaamaan kohdeluokkia;
  • Hienosäädä pienemmällä oppimisnopeudella.

2. Objektien tunnistus

Objektien tunnistus sisältää sekä kohteiden tunnistamisen että niiden paikantamisen kuvassa. Siirtoloppuopetus mahdollistaa mallien, kuten Faster R-CNN, SSD ja YOLO, tehokkaan soveltamisen uusien aineistojen kohteiden tunnistukseen.

Esimerkki:

  • Käytä esikoulutettua objektintunnistusmallia (esim. YOLOv8);
  • Hienosäädä mallia uudella aineistolla, jossa on uusia kohdeluokkia;
  • Arvioi suorituskyky ja optimoi tarvittaessa.

3. Semanttinen segmentointi

Semanttinen segmentointi luokittelee jokaisen kuvan pikselin ennalta määriteltyihin kategorioihin. Mallit kuten U-Net ja DeepLab ovat laajasti käytössä sovelluksissa, kuten autonominen ajaminen ja lääketieteellinen kuvantaminen.

Esimerkki:

  • Käytä esikoulutettua segmentointimallia (esim. U-Net);
  • Kouluta mallia alakohtaisella aineistolla;
  • Säädä hyperparametreja paremman tarkkuuden saavuttamiseksi.

4. Tyylinsiirto

Tyylinsiirto soveltaa yhden kuvan visuaalisen tyylin toiseen kuvaan säilyttäen alkuperäisen sisällön. Tätä tekniikkaa käytetään yleisesti digitaalisessa taiteessa ja kuvanparannuksessa hyödyntäen esikoulutettuja malleja, kuten VGG.

Esimerkki:

  • Valitse tyylinsiirtomalli (esim. VGG);
  • Syötä sisältö- ja tyylikuvat;
  • Optimoi visuaalisesti miellyttävien tulosten saavuttamiseksi.

1. Mikä on siirtoloppuopetuksen tärkein etu tietokonenäössä?

2. Mikä lähestymistapa siirto-oppimisessa käytetään, kun vain esikoulutetun mallin viimeistä kerrosta muokataan ja aiemmat kerrokset pidetään muuttumattomina?

3. Mikä seuraavista malleista on yleisesti käytetty siirto-oppimisessa objektien tunnistuksessa?

question mark

Mikä on siirtoloppuopetuksen tärkein etu tietokonenäössä?

Select the correct answer

question mark

Mikä lähestymistapa siirto-oppimisessa käytetään, kun vain esikoulutetun mallin viimeistä kerrosta muokataan ja aiemmat kerrokset pidetään muuttumattomina?

Select the correct answer

question mark

Mikä seuraavista malleista on yleisesti käytetty siirto-oppimisessa objektien tunnistuksessa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain the difference between fine-tuning and feature extraction in more detail?

What are some real-world examples where transfer learning is especially useful?

How do I choose which pre-trained model to use for my specific task?

Awesome!

Completion rate improved to 3.45

bookSiirtäminen Oppiminen Tietokonenäössä

Pyyhkäise näyttääksesi valikon

Siirtäminen oppiminen mahdollistaa suurilla tietoaineistoilla koulutettujen mallien uudelleenkäytön uusiin tehtäviin, joissa dataa on rajallisesti. Sen sijaan, että rakennettaisiin neuroverkko alusta alkaen, hyödynnetään esikoulutettuja malleja tehokkuuden ja suorituskyvyn parantamiseksi. Tämän kurssin aikana olet jo kohdannut vastaavia lähestymistapoja aiemmissa osioissa, jotka ovat luoneet perustan siirto-oppimisen tehokkaalle soveltamiselle.

Mikä on siirto-oppiminen?

Siirto-oppiminen on tekniikka, jossa yhdellä tehtävällä koulutettu malli mukautetaan toiseen, siihen liittyvään tehtävään. Tietokonenäössä suurilla tietoaineistoilla, kuten ImageNet, esikoulutetut mallit voidaan hienosäätää erityissovelluksiin, kuten lääketieteelliseen kuvantamiseen tai autonomiseen ajamiseen.

transfer_learning_idea

Miksi siirtoppiminen on tärkeää?

  • Lyhentää koulutusaikaa: koska malli on jo oppinut yleisiä piirteitä, tarvitaan vain pieniä säätöjä;
  • Vaatii vähemmän dataa: hyödyllinen tilanteissa, joissa merkityn datan hankkiminen on kallista;
  • Parantaa suorituskykyä: esikoulutetut mallit tarjoavat vankan piirteiden tunnistuksen, mikä parantaa tarkkuutta.

Siirtoppimisen työnkulku

Tyypillinen siirtoppimisen työnkulku sisältää useita keskeisiä vaiheita:

  1. Esikoulutetun mallin valinta:

    • Valitse malli, joka on koulutettu suurella tietoaineistolla (esim. ResNet, VGG, YOLO);
    • Nämä mallit ovat oppineet hyödyllisiä esityksiä, joita voidaan mukauttaa uusiin tehtäviin.
  2. Esikoulutetun mallin muokkaaminen:

    • Piirteiden poiminta: jäädytä alkuvaiheen kerrokset ja kouluta vain myöhemmät kerrokset uudelle tehtävälle;
    • Hienosäätö: vapauta osa tai kaikki kerrokset ja kouluta ne uudelleen uudella tietoaineistolla.
  3. Koulutus uudella tietoaineistolla:

    • Kouluta muokattu malli käyttäen pienempää, kohdetehtävään liittyvää tietoaineistoa;
    • Optimoi käyttäen tekniikoita kuten takaisinkytkentä ja häviöfunktiot.
  4. Arviointi ja iterointi:

    • Arvioi suorituskykyä mittareilla kuten tarkkuus, precisio, herkkyys ja mAP;
    • Hienosäädä tarvittaessa tulosten parantamiseksi.

Suositut esikoulutetut mallit

Joitakin laajimmin käytettyjä esikoulutettuja malleja tietokonenäössä ovat:

  • ResNet: syvät jäännösverkot, jotka mahdollistavat erittäin syvien arkkitehtuurien koulutuksen;
  • VGG: yksinkertainen arkkitehtuuri, jossa on yhtenäiset konvoluutiokerrokset;
  • EfficientNet: optimoitu korkeaan tarkkuuteen vähemmillä parametreilla;
  • YOLO: huipputason (SOTA) reaaliaikainen objektintunnistus.

Hienosäätö vs. ominaisuuksien erottelu

Ominaisuuksien erottelu tarkoittaa esikoulutetun mallin kerrosten käyttämistä kiinteinä ominaisuuksien erottelijoina. Tässä lähestymistavassa alkuperäisen mallin viimeinen luokittelukerros poistetaan ja korvataan uudella, kohdetehtävään sopivalla kerroksella. Esikoulutetut kerrokset pidetään jäädytettyinä, eli niiden painoja ei päivitetä koulutuksen aikana, mikä nopeuttaa koulutusta ja vaatii vähemmän dataa.

from tensorflow.keras.applications import VGG16
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, Flatten

base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3))
for layer in base_model.layers:
    layer.trainable = False  # Freeze base model layers

x = Flatten()(base_model.output)
x = Dense(256, activation='relu')(x)
x = Dense(10, activation='softmax')(x)  # Task-specific output

model = Model(inputs=base_model.input, outputs=x)
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Hienosäätö puolestaan menee askeleen pidemmälle vapauttamalla joitakin tai kaikki esikoulutetut kerrokset ja kouluttamalla niitä uudelleen uudella aineistolla. Tämä mahdollistaa mallin mukauttaa opitut ominaisuudet tarkemmin uuden tehtävän erityispiirteisiin, mikä usein parantaa suorituskykyä—erityisesti silloin, kun uusi aineisto on riittävän suuri tai poikkeaa merkittävästi alkuperäisestä koulutusaineistosta.

for layer in base_model.layers[-10:]:  # Unfreeze last 10 layers
    layer.trainable = True

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Siirtoloppuoppimisen sovellukset

transfer_learning_uses

1. Kuvien luokittelu

Kuvien luokittelu tarkoittaa kuvien merkitsemistä tunnisteilla niiden visuaalisen sisällön perusteella. Esikoulutetut mallit, kuten ResNet ja EfficientNet, voidaan mukauttaa erityistehtäviin, kuten lääketieteelliseen kuvantamiseen tai villieläinten luokitteluun.

Esimerkki:

  • Valitse esikoulutettu malli (esim. ResNet);
  • Muokkaa luokittelukerrosta vastaamaan kohdeluokkia;
  • Hienosäädä pienemmällä oppimisnopeudella.

2. Objektien tunnistus

Objektien tunnistus sisältää sekä kohteiden tunnistamisen että niiden paikantamisen kuvassa. Siirtoloppuopetus mahdollistaa mallien, kuten Faster R-CNN, SSD ja YOLO, tehokkaan soveltamisen uusien aineistojen kohteiden tunnistukseen.

Esimerkki:

  • Käytä esikoulutettua objektintunnistusmallia (esim. YOLOv8);
  • Hienosäädä mallia uudella aineistolla, jossa on uusia kohdeluokkia;
  • Arvioi suorituskyky ja optimoi tarvittaessa.

3. Semanttinen segmentointi

Semanttinen segmentointi luokittelee jokaisen kuvan pikselin ennalta määriteltyihin kategorioihin. Mallit kuten U-Net ja DeepLab ovat laajasti käytössä sovelluksissa, kuten autonominen ajaminen ja lääketieteellinen kuvantaminen.

Esimerkki:

  • Käytä esikoulutettua segmentointimallia (esim. U-Net);
  • Kouluta mallia alakohtaisella aineistolla;
  • Säädä hyperparametreja paremman tarkkuuden saavuttamiseksi.

4. Tyylinsiirto

Tyylinsiirto soveltaa yhden kuvan visuaalisen tyylin toiseen kuvaan säilyttäen alkuperäisen sisällön. Tätä tekniikkaa käytetään yleisesti digitaalisessa taiteessa ja kuvanparannuksessa hyödyntäen esikoulutettuja malleja, kuten VGG.

Esimerkki:

  • Valitse tyylinsiirtomalli (esim. VGG);
  • Syötä sisältö- ja tyylikuvat;
  • Optimoi visuaalisesti miellyttävien tulosten saavuttamiseksi.

1. Mikä on siirtoloppuopetuksen tärkein etu tietokonenäössä?

2. Mikä lähestymistapa siirto-oppimisessa käytetään, kun vain esikoulutetun mallin viimeistä kerrosta muokataan ja aiemmat kerrokset pidetään muuttumattomina?

3. Mikä seuraavista malleista on yleisesti käytetty siirto-oppimisessa objektien tunnistuksessa?

question mark

Mikä on siirtoloppuopetuksen tärkein etu tietokonenäössä?

Select the correct answer

question mark

Mikä lähestymistapa siirto-oppimisessa käytetään, kun vain esikoulutetun mallin viimeistä kerrosta muokataan ja aiemmat kerrokset pidetään muuttumattomina?

Select the correct answer

question mark

Mikä seuraavista malleista on yleisesti käytetty siirto-oppimisessa objektien tunnistuksessa?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 1
some-alt