Merhaba ve Statoil'deki bu Python öğreticisine hoş geldiniz, biz derin teori modelinin uygulanmasına
ilk adımı atacağız.
Temel olarak, difüzyon algoritmasının tüm sürecini uygulamak üzereyiz.
Ve böylece daha önce yarattığımız şeyleri kullanacağız.
Bu, sinirsel ağın, bunu tüm dizin çözme öğrenme sürecine entegre etmek için belleği yeniden
çalması için olan mimarisi.
Ve bütün öğrenme algoritması bir sınıfa sığacak.
Yapay zekayı uygulamak için yaptığımız son şey budur.
Ve bu sınıf sadece farklı işlevler içerecektir.
Dolayısıyla, modelin kendisini temsil edecek ve bazı başka işlevlere sahip olacak olan gelecekteki
yön bulma nesnelerimize ekli olan tüm değişkenleri yaratacak ve başlatacak olan işlevlere sahip olacağız.
Bunlardan biri elbette her seferinde doğru hareketi seçmek olacaktır.
Ayrıca bu çekirdeği elde etmek için bir güncelleme fonksiyonu çekirdek işlevi göreceğiz ve eğer öğrenme iyi gidiyorsa öğrenmenin nasıl
gittiğine dair bir fikriniz olacaktır.
Eğer keşif iyi gidiyorsa ve sömürüye doğru ilerleyebilirse ve o zaman yarının kurtarılması için güvenli
bir işleve sahip olacağız, o da arabanın beynini kurtarmak ve sonuçta yük fonksiyonunu sağlamaktır.
Dolayısıyla, yapacak birkaç işlevimiz var.
Her biri için bir işlevi yerine getireceğiz.
Ve bugün sınıf oluştururken her zamanki gibi son işlevi ile başlayacağız.
Fakat öncelikle sınıfa girmeyi unutmayalım, böylece D diyeceğiz.
Q Ve sizin için şebeke daha sonra bazı parantez arar.
Ve sonra ilk işle uğraşırız.
Bu yüzden def'i sonra çift altı çizili, ardından çiftinin alt çizgisini ve parantezi tekrar çizelim.
Bu işlevi gördüğünüz gibi, nesnemize ekli değişkenleri tanıtacağız.
Dolayısıyla, kendi başlarına birkaç satır başlayacağız ve temel olarak D2
ağını uygulamak için gereken tüm değişkenleri oluşturup başlatacağız.
Dolayısıyla, örneğin bir cisim veya şebekeyi yaratacağız çünkü tabii ki derin sinir ağımıza ihtiyaç duyuyoruz,
o zaman hafızamıza ihtiyaç duyacağız.
Bellek için başka bir değişken yaratacağız.
Dolayısıyla, başka bir değişken kendi hafızamıza sahip oluruz, ancak o zaman hepsini de yaratmamız gerekmiyor.
Son tarih için bazı değişkenler.
Son eylem ve son söz.
Tabii ki, difüzyon algoritmasında gördüğünüz değişkenleri biliyorsunuzdur.
Ve sonra başka ne var.
Ayrıca, hataya ne kadar katkıda bulunacaklarına göre veri ağırlıkları açısından stokastik ızgarayı gerçekleştirmek
için bildiğiniz bir iyileştiriciye de ihtiyacımız olacaktır.
AI bir hata yaparken ve bence o temelde şu anda yaratmamız ve
başlatmamız gereken değişkenlerdir.
Ancak bu init fonksiyonunda, önce her zamanki ben gibi birkaç argüman koyacağız, bu da nesnemize
atıfta bulunan argümanlar.
O halde, ağ sınıfının bir nesnesini yaratacağımızı bildiğinizden beri.
İyi çünkü ağ sınıfı, init işlevi girdi boyutunda argüman olarak algılıyor ve eylem de
burada aynı.
Ağ sınıfının bir nesnesi oluşturulurken, bir giriş boyutu argümanı ve gerçek bağımsız değişken
seçmeniz gerekecektir.
Dolayısıyla bunları burada kopyalayabiliriz
ve işte gidiyoruz.
Dolayısıyla bu argümanlar artık olacak.
Ayrıca bazı argümanlar sürmedi.
Farklı sınıfın gelecekteki bazı nesnelerini yarattığımızda, bazı geleceğin rol modelleri
Eh, hatırlattığım girdi boyutunu, devletlerinizi içeren vektörlerdeki boyutların sayısını
belirtmeniz gerekecek.
Giriş durumunuz ve arabanın yapabileceği olası eylemlerin sayısı olan bir dizi eylem.
Bu yüzden sana hatırlatırım.
Bunlar sola doğru gitmek ya da sağa gitmek.
Tamam mükemmel.
O halde, geçişler konusundaki hafızamızı elde etmek için hafıza nesnesini yaratmak için
yeniden çalma hafıza sınıfının yeni bir nesne oluşturacağınızı ve kapasite argümanımız olan bilgileri biliyorsunuzdur.
Fakat biz onu sadece bir kere aslında bellek kullandıracağımız zaman kullanmayacağız çünkü
hiçbir yerde değil, kapasite argümanını belirtmemiz gerekmiyor.
Bunu yapabiliriz, ancak hafızamızda olmasını istediğimiz geçiş sayısını doğrudan girer.
Fakat o zaman parametreyi öğretmen modelinde elde etmek için son bir argümana ihtiyacımız var.
Bu gama parametresinin gecikme olduğunu unutmayın.
bir parametresi ve onu buraya koyacağız, çünkü daha sonra birkaç kere kullanacağız.
Ve bu denklemin
O halde buraya koyalım.
Buna Gamma diyeyiz.
Dolayısıyla bu sadece argümanın adıdır ve bunun için işlevinde buna ihtiyaç duyacağınız
tüm argümanları kullanırız.
Demek ki, sınıfımızda öğretmenin bir nesnesini yarattığımızda sözlük modelimizi yarattığımızda
bu demektir.
Peki, girdi boyutu eylem sayısını ve parametreyi argümanlar olarak belirtmeliyiz.
Ve onlar için asıl değerlerle biteriz.
Pekâlâ, şimdi işin içine girelim.
TAMAM.
Şimdi temel olarak bu kolay olacak.
İhtiyacımız olan tüm değişkenleri yaratmak ve başlatmak üzereyiz.
Ve böylece birincisiyle başlayalım.
Gama ile başlayalım.
Aslında gecikme katsayısı.
Bu yüzden bu bir Voivode nesnesine bağlı olmak istiyor ve kendimizle başlıyoruz.
Dolayısıyla gamma, öğretmenimizin bir değişkeni olacak ve modelin kendisi de, gammanın, detune sınıfının bir nesnesi
oluşturulurken girilecek argümanlara eşit olduğu modellenecektir.
Janna ve orada ikinci argümanla devam ediyoruz.
İkinci argüman ödül penceresi olacak.
Peki bu pencere nedir.
içerisinde süzülecek olan bu savaş Windu'ya anlamı taşıyacağını bildiğiniz performansın
evrimini değerlendirmek için kullanacağınız son 100 sözcük ortalamanın kayan penceresi olacak.
Bu, sözü geçen zaman
Ve gözlemlemek istediğimiz, son 100 kelimenin zamanla artan anlamı.
Öyleyse bunu, alt çizgi penceresini ödüllendirerek kendimizle başlayalım.
Ve bu yüzden son 100 kelimenin gelişen ortalamasının kayan bir penceresi olacak.
Eh, onu boş bir liste olarak başlatacağız ve sonra fazla mesai yaptığımızı ifade etmek için genişleyeceğiz.
Tamam, o zaman daha heyecanlı.
Sinir ağımızı oluşturalım.
Bu yüzden kendi kendine öğretilen Mario olarak adlandıracağız, çünkü temelde bu modellerin kalbi.
Onu model olarak adlandırıyorum ve bu model bu sınıfta başka bir şey olmayacak ve böyle
bir nesne yaratacak.
Sınıf ağımızı parantez içinde alıyoruz ve burada sadece sınıfın argümanlarını koyduk fakat bu argümanları init fonksiyonunun
argümanlarına koyduk ve bu nedenle bunları burada kopyalamamız ve onları ağ
sınıfına yapıştırmamız gerekiyor ve biz de Bu kod satırı ile gidin.
Modeli mükemmel öğrenmek için bir sinir ağı oluşturduktan sonra bir bellek yaratalım.
Böylece biz de kendine öğretilen hafıza dediğimiz yeni bir Vargo yaratacağız.
Ve yine bu, tekrar çalma hafıza sınıfının bir nesnesi olacak.
Öyleyse adını veya sınıfı alalım, şimdi burada yüzleşelim ve bir parantez içinde kapasiteyi koymamız
gerekiyor, çünkü kapasite fonksiyonun bir argümanı ve buradaki ihtiyacımız olan tek
argüman bu.
Dolayısıyla hangi kapasiteyi seçeceğiz hatırlarsanız geçiş sayısına karşılık gelen
son olay sayısını ve son hareketi ifade eder.
Ve Priester kalelerinden birinde belirtildiği gibi yüz bin yüz bin geçişe belleğe geçeceğiz ve
daha sonra bu bellekten az sayıdaki rasgele geçişler elde etmek için numune
alacağız ve modelin üzerinde olduğu rasgele geçişler yapacağız.
Şimdi, hafızamız mükemmel.
Şimdi optimizörü alalım.
Optimizer, geleceğimizin başka bir değişkeni olduğu için optimizer olarak adlandırdığımız
yeni bir değişken oluşturuyor.
Ve şimdi biz tekrar gidersek, ızgarayı merkeze götürmek için gerçekleştirilecek tüm araçları içeren bir modüler meşale olan
işkence görmüş Upton'u ithal ettiğimizi görebilirsiniz.
ve ona Upton kısayolunu verdik ve bu yüzden burada yapacağımız şey modeli kendisine
kadar olan meşaleye olanaksız hale getirmek ve bu modülden birisini almaya gidiyoruz. optimize.
Elbette bazı iyileştiriciler içeriyor
Görebildiğiniz gibi hepsi burada listelenmiştir.
Birçoğu mükemmel, örneğin zırhın Propp mükemmel bir eniyileyicidir.
Sinir ağlarının veya gözetimsiz derin öğrenmenin bir kaydı için şiddetle tavsiye edilir.
Ama olağanüstü mükemmel olanı ve seçeceği atom iyileştirici.
Bunu göreceksiniz ki, bununla kendiliğinden sürüş halindeki iyi bir otomobil bulacaksınız.
Ama yine de diğerlerini denemekten hoşnut değilsiniz, ancak silah pervazını deneyebilirsiniz, metal için
Adam'ı seçeceğiz.
Bu yüzden enter tuşuna basıyorum.
Aslında buradaki başkentin farkına varacaksınız.
Çünkü Atom sınıfının bir nesnesi yaratıyoruz.
Bu bir sınıftır fakat nesne kendisi bir atom optimizörü olacaktır.
Ancak bu bir sınıftır, bazı bağımsız değişkenler koymamız gerekir; Atom sınıfının argümanları
ve bağımsız değişkenler sizin ve iyileştiricinizi özelleştirebilen tüm parametrelerdir.
Yani, örneğin, genellikle çürüme veya diğer bazı parametreler öğrenme hızıdır.
Ormeau'nun tüm parametrelerinin yanı sıra bir öğrenme oranı da belirleyeceğiz.
Yani modelimizin parametrelerinin başlangıcı.
Onları kendi şüphe modeliyle alabiliriz.
İşte kendi sınıfımızdan kendi kendine öğretilen model oluşturduk.
Böylece kendi kendine öğretilen model ve sonra modelin parametrelerine erişmek için başka bir nokta ve daha sonra
parametreleri bazı parantezlerle çok basitçe ekledik.
Bu sadece addon optimizer'ı sinir ağımıza bağlamak için burada oluşturduğumuz sinir ağına
daha sonra bir öğrenme hızı ekleyeceğimizden bahsettik ve bunun argümanı bizim.
büyük bir öğrenme hızı elde edersek öğrenmeyi çok hızlı gerçekleştiremeyecek bir değere eşit ayarlayacağız.
AI AI'nin düzgün bir şekilde öğreneceği çok
AI'mızın hatalarından öğrenmeyi keşfetmek için biraz zaman tanımak istiyoruz.
Biraz mantıka girmek ya da bir duvara çok yaklaşmak gibi bazı hatalar
yaparken cezalandırdığımızı biliyorsun.
İyi öğrenmek için biraz zaman ayırmak istiyoruz.
Sinir ağı doğru bir şekilde bugüne kadar bir yol istiyorum.
Ve bu yüzden birkaç tane denedikten sonra biten öğrenme oranı için iyi bir değer 0'dır. 2 veya bir tane.
Tamam, bir iyileştirici yaratmak için ihtiyacımız olan şey bu.
Yani temel olarak Atom sınıfının bir nesnesi yaratıyorsunuz demektir.
Harika.
Ve ihtiyacımız olan son üç değişken, geçiş olaylarımızı oluşturan değişkenlerdir.
Son hareketin son tarihi ve son sözü.
Ve temelde şu anda yaratacağımız şey bu ve onları sadece başlatmamız gerekecek.
Bu yüzden, kendi kendine öğretilen son tarihteki son tarihe başlayalım.
Son altı çizili durum ve sonra onu nasıl başlatın.
musun, son tarih, bir ortamda kodlanmış bir vektör olan 5 hakimiyetin bir vektörüdür.
Hatırlıyor
Ve hatırlatmak gerekirse, bu beş boyut, üç sensörün sağ ve
sol yön ve eksi yönlendirme üç sinyalidir.
Dolayısıyla bu vektör ve sezgisel bir konudur.
Fakat meşaleden dolayı bir vektörden daha fazlası olmalı.
Aslında bir meşale tensörü olmalı.
Ancak sadece meşale sensörü olması gerekmiyor, aynı zamanda topluluğa tekabül eden sahte boyut
olarak adlandırmayı sevdiğim bir boyut daha olması gerekiyor.
Bunun nedeni, son sekiz sinir ağı girişi olacağı, ancak genel olarak yoğun
akışla çalıştığı zaman benimle çalışırken giriş vektörleri kendiliğinden basit bir vektör olamazken
bir meşale taşıyor.
Bir yığın halinde olmalı.
Ağ, yalnızca giriş gözlemlerinin yığını kabul edebilir ve bu nedenle, giriş durumu vektörleri için
bir tensör yaratmakla kalmaz, aynı zamanda, partiye karşılık gelen bu sahte boyutu yaratacağız.
Şimdi bunu yapalım ve bir meşale tensörü başlatarak başlayalım, böylece daha basit bir
şey yoktur.
Torche kütüphanemizi sonra nokta olarak alıyoruz ve sonra tensör sınıfını kullanacağız çünkü tahmin ettiğiniz
gibi tensör nesne olan tensör sınıfının bir nesnesi yaratacaktır.
Ve bu tensörde, tansörün boyutunu belirtecek bir argüman koymalıyız.
Resmi tek bir türe sahip bir dizi gibi çekebilirsiniz.
Ancak temelde şu an temsil edecek olan şey tabii ki görebileceğiniz bu giriş durumunun bir vektörüne sahip
olması ve böylece mesafe gereken öğelerin sayısını belirtmektir.
Elbette giriş boyutunu kullanmamız gerekir, çünkü girdi boyutu tam olarak giriş
durum vektörlerimizin boyutlarının sayısıdır.
Şimdi tensörler demeliyim.
Tensör nesnesi oluşturmak için tensör sınıfımıza basitçe girmemiz gereken şey.
Bu çok net değil.
Ve daha sonra girdi büyüklüğü nicelleştirilecek.
Pekâlâ, bu iyi.
Yapılan ilk şey budur.
Tensörü olması gerektiği gibi başlattık.
olmak zorundasınız toplu iş içine koyduğumda bunu ilk kez söyleyeceğim, bunu çok iyi diyelim.
Fakat sonra, sahte boyutu yaratmak için ihtiyaç duyduğumuz bir başka şeyi yapmamız gerektiğini lütfen unutmayın; ağın
girdileri için bekleyeceği şey budur ve muayene için bunu yaratmaktır, ki bu arada
hasarı bildiğiniz ilk motor
Bunu yapmak için, daha sonra eklememiz ve sonra biraz parantez içinde sıkmanız gerekir.
Bu büyük boyutun endeksini koymamız gerekiyor.
Ve söylediğim gibi, bu sahte boyut son tarihin ilk animasyonu olmalı ve dizinlerden ve
baytlardan beri sıfıra başladık ve bu yeni paradigma motorunun ilk satır motoru haline gelmesi için
sıfır girmeliyiz.
Bu yüzden partiye karşılık gelen ilk kez bir motora sahibiz ve elmas,
giriş durumunun üç sinyal yönelimini ve eksi yönünü belirten beş elementi içeren sensöre
yanıt vermeli.
Sonra giriş durumlarımızı düzgün bir şekilde başlattık.
Mükemmel.
Ve sonra gitmek için iki değişken daha kolay olacak çünkü sonraki değişken son
eylem.
Bu, Nesnenin son eylemi için yarattığımız yeni bir Roybal.
Ve bölümün ilk dersinde, eylemlerinizin 0 1 veya 2 olacağını
ve daha sonra eylem döndürme vektörünü kullanacağınızı ve bu eylemlerin bu indekslerini 0'ın
hatırlattığımız dönüş açısına dönüştüreceğini hatırladığımı 20 veya eksi 20.
Aslında hafızamızı yenileyebiliriz.
Şey, tam burada.
Eylem sıfır ise döndürme eylemi.
Eylem 1 ise, bu, ilk sıfır dizinine karşılık gelecektir.
eksi 20 derece alacağız, bu da hareketi oynarken aracımızın dönüş açısı olacak.
Bu, bu vektörlerin 20 derecelik endekslerinden birine karşılık gelecek ve eğer hareketin olması halinde
Tamam.
Ve bu nedenle eylem, ya 0 1 ya da 2 Well olacak basit bir sayı için
eylem var.
Ve bunu çok basit bir şekilde sıfıra başlatabiliriz.
Herhangi bir onlar yaratmamız veya başka bir şey duymamız gerekmiyor.
Sadece sıfırla başlatmalıyız.
Ve sonunda.
İşte son söz bu.
Bu son kelimenin özü bu.
Oraya gidiyoruz.
Ve tekrar kelime, eksi 1 ile artı 1 arasında olduğunu hatırlattığım bir şamandıra numarası.
Bu tekrar sayı.
Ve eylem için olduğu gibi.
Onu sıfıra başlatıp sonra da gideriz.
Tebrikler işte hazırdır.
Şimdi heyecanlı şeylere geçmeye hazırız.
Aslında AI için her şeyin ve her oyunun hangi eylemde bulunacağına karar vermesi için
en önemli şey ve işte, select eylem yöntemini oluşturarak bir sonraki öğreticide yapacağımız şey budur.
O halde bunu, ustalıkla ve o zamana kadar yapalım.