Update Image location

pull/850/head
Lee Stott 7 days ago committed by GitHub
parent 8bb44259b8
commit 3c30cdd40b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -63,13 +63,13 @@ Follow these steps:
Some of the lessons are available as short form video. You can find all these in-line in the lessons, or on the [ML for Beginners playlist on the Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) by clicking the image below.
[![ML for beginners banner](./ml-for-beginners-video-banner.png)](https://aka.ms/ml-beginners-videos)
[![ML for beginners banner](./images/ml-for-beginners-video-banner.png)](https://aka.ms/ml-beginners-videos)
---
## Meet the Team
[![Promo video](ml.gif)](https://youtu.be/Tj1XWrDSYJU "Promo video")
[![Promo video](./images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif by** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Before

Width:  |  Height:  |  Size: 185 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Before

Width:  |  Height:  |  Size: 355 KiB

After

Width:  |  Height:  |  Size: 355 KiB

@ -1,217 +0,0 @@
# Compiti e tecniche comuni di elaborazione del linguaggio naturale
Per la maggior parte dei compiti di *elaborazione del linguaggio naturale*, il testo da elaborare deve essere scomposto, esaminato e i risultati memorizzati o confrontati con regole e set di dati. Questi compiti permettono al programmatore di derivare il _significato_ o l'_intento_ o solo la _frequenza_ dei termini e delle parole in un testo.
## [Quiz pre-lezione](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/33/)
Scopriamo insieme le tecniche comuni utilizzate nell'elaborazione del testo. Combinando queste tecniche con il machine learning, è possibile analizzare grandi quantità di testo in modo efficiente. Prima di applicare il ML a questi compiti, però, è importante comprendere i problemi che un esperto di NLP può incontrare.
## Compiti comuni nell'NLP
Esistono diversi modi per analizzare un testo su cui si sta lavorando. Ci sono compiti che puoi eseguire e attraverso questi compiti puoi comprendere il testo e trarre conclusioni. Di solito, questi compiti vengono eseguiti in sequenza.
### Tokenizzazione
Probabilmente la prima cosa che la maggior parte degli algoritmi di NLP deve fare è dividere il testo in token, o parole. Sebbene possa sembrare semplice, dover tener conto della punteggiatura e dei delimitatori di parole e frasi di diverse lingue può renderlo complicato. Potrebbe essere necessario utilizzare vari metodi per determinare le demarcazioni.
![tokenization](../../../../translated_images/tokenization.1641a160c66cd2d93d4524e8114e93158a9ce0eba3ecf117bae318e8a6ad3487.it.png)
> Tokenizzazione di una frase da **Orgoglio e Pregiudizio**. Infografica di [Jen Looper](https://twitter.com/jenlooper)
### Embeddings
I [word embeddings](https://wikipedia.org/wiki/Word_embedding) sono un modo per convertire i dati del testo in numeri. Gli embeddings sono realizzati in modo tale che parole con significati simili o parole usate insieme si raggruppino.
![word embeddings](../../../../translated_images/embedding.2cf8953c4b3101d188c2f61a5de5b6f53caaa5ad4ed99236d42bc3b6bd6a1fe2.it.png)
> "Ho il massimo rispetto per i tuoi nervi, sono vecchi amici." - Word embeddings per una frase in **Orgoglio e Pregiudizio**. Infografica di [Jen Looper](https://twitter.com/jenlooper)
✅ Prova [questo interessante strumento](https://projector.tensorflow.org/) per sperimentare con i word embeddings. Cliccando su una parola, vengono mostrati i cluster di parole simili: 'giocattolo' si raggruppa con 'disney', 'lego', 'playstation' e 'console'.
### Parsing e Part-of-speech Tagging
Ogni parola che è stata tokenizzata può essere etichettata come parte del discorso - un sostantivo, un verbo o un aggettivo. La frase `the quick red fox jumped over the lazy brown dog` potrebbe essere etichettata come POS fox = sostantivo, jumped = verbo.
![parsing](../../../../translated_images/parse.d0c5bbe1106eae8fe7d60a183cd1736c8b6cec907f38000366535f84f3036101.it.png)
> Parsing di una frase da **Orgoglio e Pregiudizio**. Infografica di [Jen Looper](https://twitter.com/jenlooper)
Il parsing è il riconoscimento delle parole che sono correlate tra loro in una frase - per esempio `the quick red fox jumped` è una sequenza di aggettivo-sostantivo-verbo che è separata dalla sequenza `lazy brown dog`.
### Frequenze di parole e frasi
Una procedura utile quando si analizza un grande corpo di testo è costruire un dizionario di ogni parola o frase di interesse e quante volte appare. La frase `the quick red fox jumped over the lazy brown dog` ha una frequenza di parole di 2 per the.
Vediamo un esempio di testo in cui contiamo la frequenza delle parole. La poesia di Rudyard Kipling The Winners contiene il seguente verso:
```output
What the moral? Who rides may read.
When the night is thick and the tracks are blind
A friend at a pinch is a friend, indeed,
But a fool to wait for the laggard behind.
Down to Gehenna or up to the Throne,
He travels the fastest who travels alone.
```
Poiché le frequenze delle frasi possono essere sensibili o insensibili alle maiuscole, la frase `a friend` has a frequency of 2 and `the` has a frequency of 6, and `travels` è 2.
### N-grams
Un testo può essere suddiviso in sequenze di parole di una lunghezza impostata, una singola parola (unigram), due parole (bigram), tre parole (trigram) o qualsiasi numero di parole (n-grams).
Per esempio `the quick red fox jumped over the lazy brown dog` con un punteggio n-gram di 2 produce i seguenti n-grams:
1. the quick
2. quick red
3. red fox
4. fox jumped
5. jumped over
6. over the
7. the lazy
8. lazy brown
9. brown dog
Potrebbe essere più facile visualizzarlo come una casella scorrevole sulla frase. Ecco qui per n-grams di 3 parole, il n-gram è in grassetto in ogni frase:
1. <u>**the quick red**</u> fox jumped over the lazy brown dog
2. the **<u>quick red fox</u>** jumped over the lazy brown dog
3. the quick **<u>red fox jumped</u>** over the lazy brown dog
4. the quick red **<u>fox jumped over</u>** the lazy brown dog
5. the quick red fox **<u>jumped over the</u>** lazy brown dog
6. the quick red fox jumped **<u>over the lazy</u>** brown dog
7. the quick red fox jumped over <u>**the lazy brown**</u> dog
8. the quick red fox jumped over the **<u>lazy brown dog</u>**
![n-grams sliding window](../../../../6-NLP/2-Tasks/images/n-grams.gif)
> Valore n-gram di 3: Infografica di [Jen Looper](https://twitter.com/jenlooper)
### Estrazione di frasi nominali
Nella maggior parte delle frasi, c'è un sostantivo che è il soggetto o l'oggetto della frase. In inglese, spesso è identificabile perché preceduto da 'a', 'an' o 'the'. Identificare il soggetto o l'oggetto di una frase estraendo la frase nominale è un compito comune nell'NLP quando si cerca di comprendere il significato di una frase.
✅ Nella frase "Non riesco a fissare l'ora, o il luogo, o lo sguardo o le parole, che hanno posto le basi. È troppo tempo fa. Ero nel mezzo prima di sapere che avevo iniziato.", riesci a identificare le frasi nominali?
Nella frase `the quick red fox jumped over the lazy brown dog` ci sono 2 frasi nominali: **quick red fox** e **lazy brown dog**.
### Analisi del sentimento
Una frase o un testo possono essere analizzati per il sentimento, ovvero quanto è *positivo* o *negativo*. Il sentimento è misurato in *polarità* e *oggettività/soggettività*. La polarità è misurata da -1.0 a 1.0 (negativo a positivo) e da 0.0 a 1.0 (più oggettivo a più soggettivo).
✅ Più avanti imparerai che ci sono diversi modi per determinare il sentimento usando il machine learning, ma un modo è avere una lista di parole e frasi categorizzate come positive o negative da un esperto umano e applicare quel modello al testo per calcolare un punteggio di polarità. Riesci a vedere come questo funzionerebbe in alcune circostanze e meno bene in altre?
### Inflessione
L'inflessione ti permette di prendere una parola e ottenere il singolare o il plurale della parola.
### Lemmatizzazione
Un *lemma* è la radice o la parola principale per un insieme di parole, ad esempio *flew*, *flies*, *flying* hanno come lemma il verbo *fly*.
Esistono anche database utili per il ricercatore NLP, in particolare:
### WordNet
[WordNet](https://wordnet.princeton.edu/) è un database di parole, sinonimi, contrari e molti altri dettagli per ogni parola in molte lingue diverse. È incredibilmente utile quando si tenta di costruire traduzioni, correttori ortografici o strumenti linguistici di qualsiasi tipo.
## Librerie NLP
Fortunatamente, non devi costruire tutte queste tecniche da solo, poiché ci sono eccellenti librerie Python disponibili che rendono tutto molto più accessibile agli sviluppatori che non sono specializzati in elaborazione del linguaggio naturale o machine learning. Le prossime lezioni includono più esempi di queste, ma qui imparerai alcuni esempi utili per aiutarti con il prossimo compito.
### Esercizio - usando `TextBlob` library
Let's use a library called TextBlob as it contains helpful APIs for tackling these types of tasks. TextBlob "stands on the giant shoulders of [NLTK](https://nltk.org) and [pattern](https://github.com/clips/pattern), and plays nicely with both." It has a considerable amount of ML embedded in its API.
> Note: A useful [Quick Start](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) guide is available for TextBlob that is recommended for experienced Python developers
When attempting to identify *noun phrases*, TextBlob offers several options of extractors to find noun phrases.
1. Take a look at `ConllExtractor`.
```python
from textblob import TextBlob
from textblob.np_extractors import ConllExtractor
# import and create a Conll extractor to use later
extractor = ConllExtractor()
# later when you need a noun phrase extractor:
user_input = input("> ")
user_input_blob = TextBlob(user_input, np_extractor=extractor) # note non-default extractor specified
np = user_input_blob.noun_phrases
```
> Cosa sta succedendo qui? [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) è "Un estrattore di frasi nominali che utilizza il chunk parsing addestrato con il corpus di addestramento ConLL-2000." ConLL-2000 si riferisce alla Conferenza del 2000 sull'Apprendimento del Linguaggio Naturale Computazionale. Ogni anno la conferenza ospitava un workshop per affrontare un problema spinoso di NLP, e nel 2000 si trattava del chunking dei nomi. Un modello è stato addestrato sul Wall Street Journal, con "le sezioni 15-18 come dati di addestramento (211727 token) e la sezione 20 come dati di test (47377 token)". Puoi guardare le procedure utilizzate [qui](https://www.clips.uantwerpen.be/conll2000/chunking/) e i [risultati](https://ifarm.nl/erikt/research/np-chunking.html).
### Sfida - migliorare il tuo bot con l'NLP
Nella lezione precedente hai costruito un bot di domande e risposte molto semplice. Ora, renderai Marvin un po' più simpatico analizzando il tuo input per il sentimento e stampando una risposta che corrisponda al sentimento. Dovrai anche identificare una `noun_phrase` e chiedere informazioni a riguardo.
I tuoi passaggi quando costruisci un bot conversazionale migliore:
1. Stampa istruzioni che consigliano l'utente su come interagire con il bot
2. Avvia il ciclo
1. Accetta l'input dell'utente
2. Se l'utente ha chiesto di uscire, esci
3. Elabora l'input dell'utente e determina la risposta appropriata al sentimento
4. Se viene rilevata una frase nominale nel sentimento, pluralizzala e chiedi ulteriori informazioni su quel tema
5. Stampa la risposta
3. torna al passaggio 2
Ecco il frammento di codice per determinare il sentimento usando TextBlob. Nota che ci sono solo quattro *gradazioni* di risposta al sentimento (puoi averne di più se vuoi):
```python
if user_input_blob.polarity <= -0.5:
response = "Oh dear, that sounds bad. "
elif user_input_blob.polarity <= 0:
response = "Hmm, that's not great. "
elif user_input_blob.polarity <= 0.5:
response = "Well, that sounds positive. "
elif user_input_blob.polarity <= 1:
response = "Wow, that sounds great. "
```
Ecco un esempio di output per guidarti (l'input dell'utente è sulle righe che iniziano con >):
```output
Hello, I am Marvin, the friendly robot.
You can end this conversation at any time by typing 'bye'
After typing each answer, press 'enter'
How are you today?
> I am ok
Well, that sounds positive. Can you tell me more?
> I went for a walk and saw a lovely cat
Well, that sounds positive. Can you tell me more about lovely cats?
> cats are the best. But I also have a cool dog
Wow, that sounds great. Can you tell me more about cool dogs?
> I have an old hounddog but he is sick
Hmm, that's not great. Can you tell me more about old hounddogs?
> bye
It was nice talking to you, goodbye!
```
Una possibile soluzione al compito è [qui](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/2-Tasks/solution/bot.py)
✅ Verifica delle conoscenze
1. Pensi che le risposte simpatiche potrebbero 'ingannare' qualcuno facendogli credere che il bot li capisca davvero?
2. Identificare la frase nominale rende il bot più 'credibile'?
3. Perché estrarre una 'frase nominale' da una frase è una cosa utile da fare?
---
Implementa il bot nella verifica delle conoscenze precedente e testalo su un amico. Riesce a ingannarlo? Riesci a rendere il tuo bot più 'credibile'?
## 🚀Sfida
Prendi un compito nella verifica delle conoscenze precedente e prova a implementarlo. Testa il bot su un amico. Riesce a ingannarlo? Riesci a rendere il tuo bot più 'credibile'?
## [Quiz post-lezione](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/34/)
## Revisione e auto-studio
Nelle prossime lezioni imparerai di più sull'analisi del sentimento. Ricerca questa interessante tecnica in articoli come questi su [KDNuggets](https://www.kdnuggets.com/tag/nlp)
## Compito
[Make a bot talk back](assignment.md)
**Disclaimer**:
Questo documento è stato tradotto utilizzando servizi di traduzione basati su intelligenza artificiale. Sebbene ci impegniamo per l'accuratezza, si prega di essere consapevoli che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda la traduzione professionale umana. Non siamo responsabili per eventuali malintesi o interpretazioni errate derivanti dall'uso di questa traduzione.

@ -1,14 +0,0 @@
# Fai parlare un Bot
## Istruzioni
Nelle lezioni precedenti, hai programmato un bot di base con cui chattare. Questo bot dà risposte casuali fino a quando non dici 'ciao'. Puoi rendere le risposte un po' meno casuali e attivare risposte se dici cose specifiche, come 'perché' o 'come'? Pensa a come l'apprendimento automatico potrebbe rendere questo tipo di lavoro meno manuale mentre estendi il tuo bot. Puoi usare le librerie NLTK o TextBlob per facilitare i tuoi compiti.
## Rubrica
| Criteri | Esemplare | Adeguato | Da migliorare |
| -------- | --------------------------------------------- | ------------------------------------------------- | ----------------------- |
| | Un nuovo file bot.py è presentato e documentato | Un nuovo file bot è presentato ma contiene bug | Un file non è presentato |
**Disclaimer**:
Questo documento è stato tradotto utilizzando servizi di traduzione automatica basati su AI. Sebbene ci impegniamo per l'accuratezza, si prega di essere consapevoli che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua nativa dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione umana professionale. Non siamo responsabili per eventuali fraintendimenti o interpretazioni errate derivanti dall'uso di questa traduzione.

@ -1,6 +0,0 @@
Isto é um espaço reservado temporário. Por favor, escreva a saída da esquerda para a direita.
Isto é um espaço reservado temporário.
**Isenção de responsabilidade**:
Este documento foi traduzido usando serviços de tradução automática baseados em IA. Embora nos esforcemos pela precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações errôneas decorrentes do uso desta tradução.

@ -1,6 +0,0 @@
este é um espaço reservado temporárioPor favor, escreva a saída da esquerda para a direita.
este é um espaço reservado temporário
**Isenção de responsabilidade**:
Este documento foi traduzido utilizando serviços de tradução automática baseados em IA. Embora nos esforcemos pela precisão, esteja ciente de que as traduções automáticas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional por um humano. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações errôneas decorrentes do uso desta tradução.

@ -1,59 +0,0 @@
## Politikayı kontrol etme
Q-Tablosu her durumdaki her eylemin "çekiciliğini" listeler, bu nedenle dünyamızda verimli navigasyonu tanımlamak oldukça kolaydır. En basit durumda, en yüksek Q-Tablosu değerine karşılık gelen eylemi seçebiliriz: (kod bloğu 9)
```python
def qpolicy_strict(m):
x,y = m.human
v = probs(Q[x,y])
a = list(actions)[np.argmax(v)]
return a
walk(m,qpolicy_strict)
```
> Yukarıdaki kodu birkaç kez denerseniz, bazen "takıldığını" ve kesmek için not defterindeki DURDUR düğmesine basmanız gerektiğini fark edebilirsiniz. Bu, iki durumun optimal Q-Değeri açısından birbirine "işaret ettiği" durumlar olabileceğinden, bu durumda ajan bu durumlar arasında sonsuz bir şekilde hareket etmeye başlar.
## 🚀Meydan Okuma
> **Görev 1:** `walk` function to limit the maximum length of path by a certain number of steps (say, 100), and watch the code above return this value from time to time.
> **Task 2:** Modify the `walk` function so that it does not go back to the places where it has already been previously. This will prevent `walk` from looping, however, the agent can still end up being "trapped" in a location from which it is unable to escape.
## Navigation
A better navigation policy would be the one that we used during training, which combines exploitation and exploration. In this policy, we will select each action with a certain probability, proportional to the values in the Q-Table. This strategy may still result in the agent returning back to a position it has already explored, but, as you can see from the code below, it results in a very short average path to the desired location (remember that `print_statistics` simülasyonu 100 kez çalıştıracak şekilde değiştirin: (kod bloğu 10)
```python
def qpolicy(m):
x,y = m.human
v = probs(Q[x,y])
a = random.choices(list(actions),weights=v)[0]
return a
print_statistics(qpolicy)
```
Bu kodu çalıştırdıktan sonra, önceki ortalama yol uzunluğundan çok daha küçük bir ortalama yol uzunluğu elde etmelisiniz, 3-6 aralığında.
## Öğrenme sürecini araştırma
Belirttiğimiz gibi, öğrenme süreci, problem alanının yapısı hakkında elde edilen bilgilerin keşfi ve keşfi arasında bir dengedir. Öğrenme sonuçlarının (bir ajanın hedefe kısa bir yol bulma yeteneği) iyileştiğini gördük, ancak öğrenme sürecinde ortalama yol uzunluğunun nasıl davrandığını gözlemlemek de ilginçtir:
Öğrenilenler şu şekilde özetlenebilir:
- **Ortalama yol uzunluğu artar**. Burada gördüğümüz şey, başlangıçta ortalama yol uzunluğunun arttığıdır. Bu, çevre hakkında hiçbir şey bilmediğimizde, kötü durumlara, suya veya kurda yakalanma olasılığımızın yüksek olması nedeniyle olabilir. Daha fazla bilgi edindikçe ve bu bilgiyi kullanmaya başladıkça, çevreyi daha uzun süre keşfedebiliriz, ancak elma nerede olduğunu hala çok iyi bilmiyoruz.
- **Öğrendikçe yol uzunluğu azalır**. Yeterince öğrendiğimizde, ajanın hedefe ulaşması daha kolay hale gelir ve yol uzunluğu azalmaya başlar. Ancak, keşfe hala açığız, bu yüzden genellikle en iyi yoldan saparız ve yeni seçenekleri keşfederiz, bu da yolu optimalden daha uzun hale getirir.
- **Uzunluk ani bir şekilde artar**. Bu grafikte ayrıca, bir noktada uzunluğun ani bir şekilde arttığını gözlemliyoruz. Bu, sürecin stokastik doğasını ve bir noktada Q-Tablosu katsayılarını yeni değerlerle üzerine yazarak "bozabileceğimizi" gösterir. Bu, ideal olarak öğrenme oranını azaltarak en aza indirilmelidir (örneğin, eğitimin sonuna doğru, Q-Tablosu değerlerini sadece küçük bir değerle ayarlayarak).
Genel olarak, öğrenme sürecinin başarısı ve kalitesinin, öğrenme oranı, öğrenme oranı düşüşü ve indirim faktörü gibi parametrelere önemli ölçüde bağlı olduğunu hatırlamak önemlidir. Bunlar genellikle **hiperparametreler** olarak adlandırılır, çünkü eğitim sırasında optimize ettiğimiz **parametrelerden** (örneğin, Q-Tablosu katsayıları) farklıdır. En iyi hiperparametre değerlerini bulma sürecine **hiperparametre optimizasyonu** denir ve ayrı bir konuyu hak eder.
## [Ders sonrası quiz](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/46/)
## Ödev
[Daha Gerçekçi Bir Dünya](assignment.md)
**Feragatname**:
Bu belge, makine tabanlı yapay zeka çeviri hizmetleri kullanılarak çevrilmiştir. Doğruluk için çaba sarf etsek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan herhangi bir yanlış anlama veya yanlış yorumlamadan sorumlu değiliz.

@ -1,28 +0,0 @@
# Daha Gerçekçi Bir Dünya
Bizim durumumuzda, Peter neredeyse hiç yorulmadan veya acıkmadan dolaşabiliyordu. Daha gerçekçi bir dünyada, arada bir oturup dinlenmesi ve kendini beslemesi gerekecek. Dünyamızı daha gerçekçi hale getirelim ve aşağıdaki kuralları uygulayalım:
1. Bir yerden bir yere hareket ederek, Peter **enerji** kaybeder ve biraz **yorgunluk** kazanır.
2. Peter elma yiyerek daha fazla enerji kazanabilir.
3. Peter, ağacın altında veya çimenlerin üzerinde dinlenerek yorgunluğundan kurtulabilir (yani, tahtada bir ağaç veya çimen bulunan bir yere yürüyerek - yeşil alan)
4. Peter, kurdu bulup öldürmek zorunda.
5. Kurdu öldürmek için, Peter'ın belirli seviyelerde enerji ve yorgunluğa sahip olması gerekir, aksi takdirde savaşı kaybeder.
## Talimatlar
Çözümünüz için başlangıç noktası olarak orijinal [notebook.ipynb](../../../../8-Reinforcement/1-QLearning/notebook.ipynb) defterini kullanın.
Ödül fonksiyonunu oyunun kurallarına göre yukarıda belirtildiği şekilde değiştirin, pekiştirmeli öğrenme algoritmasını çalıştırarak oyunu kazanmak için en iyi stratejiyi öğrenin ve rastgele yürüyüş ile algoritmanızın sonuçlarını, kazanılan ve kaybedilen oyun sayısıısından karşılaştırın.
> **Note**: Yeni dünyanızda, durum daha karmaşıktır ve insan pozisyonuna ek olarak yorgunluk ve enerji seviyelerini de içerir. Durumu bir demet (Tahta, enerji, yorgunluk) olarak temsil etmeyi seçebilir veya durum için bir sınıf tanımlayabilirsiniz (bunu `Board`'dan türetmek isteyebilirsiniz), ya da orijinal `Board` sınıfını [rlboard.py](../../../../8-Reinforcement/1-QLearning/rlboard.py) içinde değiştirebilirsiniz.
Çözümünüzde, rastgele yürüyüş stratejisinden sorumlu olan kodu koruyun ve algoritmanızın sonuçlarını rastgele yürüyüş ile sonunda karşılaştırın.
> **Note**: Çalışması için hiperparametreleri ayarlamanız gerekebilir, özellikle epoch sayısını. Oyunun başarısı (kurtla savaşma) nadir bir olay olduğu için, çok daha uzun eğitim süresi bekleyebilirsiniz.
## Değerlendirme Kriterleri
| Kriterler | Örnek | Yeterli | Geliştirmeye İhtiyaç Var |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| | Yeni dünya kurallarının tanımı, Q-Öğrenme algoritması ve bazı metinsel açıklamalar içeren bir defter sunulmuştur. Q-Öğrenme, rastgele yürüyüşle karşılaştırıldığında sonuçları önemli ölçüde iyileştirebilir. | Defter sunulmuş, Q-Öğrenme uygulanmış ve rastgele yürüyüşle karşılaştırıldığında sonuçları iyileştirmiş, ancak önemli ölçüde değil; ya da defter kötü belgelenmiş ve kod iyi yapılandırılmamış | Dünyanın kurallarını yeniden tanımlamak için bazı girişimlerde bulunulmuş, ancak Q-Öğrenme algoritması çalışmıyor veya ödül fonksiyonu tam olarak tanımlanmamış |
**Feragatname**:
Bu belge, makine tabanlı yapay zeka çeviri hizmetleri kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından doğabilecek herhangi bir yanlış anlama veya yanlış yorumlamadan sorumlu değiliz.
Loading…
Cancel
Save