WEBVTT

00:00.520 --> 00:02.690
Merhaba ve bu Python öğreticisine hoş geldiniz.

00:02.860 --> 00:05.680
Pekala, bu yüzden önümüzdeki topraklarda çok heyecanlıyız.

00:05.680 --> 00:10.690
Yapay sinir ağını yapay zekanın kalbinde olacak ve bu

00:10.690 --> 00:16.740
da 90 yaşındayken oynayacakları eylemi geri getireceğimiz yapıyı yaratarak başlayacağız.

00:16.930 --> 00:18.060
O halde bunu yapalım.

00:18.130 --> 00:23.130
Dolayısıyla, sinir ağımızın objektif olmasını istediğimizden sınıf yapacağız.

00:23.200 --> 00:25.100
Bunun sebebi çok daha kullanışlı olması.

00:25.180 --> 00:28.370
Sınıfta inşa etmek istediğimiz bir şeyin modeli olduğunu biliyorsun.

00:28.540 --> 00:34.000
Bir sinir ağı kurmak istiyoruz ve sınıfta bulunacak birtakım talimatlar

00:34.090 --> 00:35.080
vermemiz gerekiyor.

00:35.140 --> 00:37.910
Ve bu derste iki işlev yapacağız.

00:37.960 --> 00:42.810
Önce sınıfı oluştururken her zaman ortaya çıkan fonksiyon olan init işlevi.

00:43.000 --> 00:47.770
Ve bu temel olarak nesnenizin sinir ağı değişkenini tanımlar.

00:47.920 --> 00:52.600
Nesneye bağlı değişkenleri global değişkenlerin aksine biliyorsunuz.

00:52.840 --> 00:57.910
girdi durumlarının kodlanmış vektörü için beş boyuta sahip olduğumuzdan beş girdi

00:57.910 --> 01:03.460
nöronundan oluşan girdi katmanını tanımlayan yeni ağın mimarisini tanımlayacak olan bu işleve ait.

01:03.790 --> 01:05.680
Ve bu nedenle bu,

01:05.890 --> 01:08.080
Sonra bazı gizli katmanları tanımlayacağız.

01:08.110 --> 01:12.940
Belki bir gizli katmanla başlayacaksınız ve ardından sinir ağının bazı diğer mimarilerini

01:12.940 --> 01:13.920
denemekten memnuniyet duyacaksınız.

01:14.200 --> 01:20.080
Ve tabii ki, her seferinde oynayabileceğimiz olası eylemleri içerecek çıktı

01:20.110 --> 01:21.940
katmanı ile sonuçlanacağız.

01:22.180 --> 01:24.730
Dolayısıyla bu işlevi tam olarak yapacağız.

01:24.850 --> 01:30.460
olacak ve sinir ağındaki nöronları aktive edecek bir işlev yapacağız.

01:30.460 --> 01:34.870
Ve sonra sınıfın içinde ileriye dönük bir işlev

01:34.870 --> 01:40.570
Bunun sinyallerin aktive olacağını biliyorsunuz ve bu nedenle düzeltilmiş bir aktivasyon fonksiyonu kullanacağız

01:40.570 --> 01:46.920
çünkü elimizde sadece doğrusal olmayan bir problemle uğraşıyoruz ve bu düzeltilmiş fonksiyon doğrusallığı bozuyor.

01:47.200 --> 01:53.340
Ama çoğunlukla, bu Ford işlevini ağın çıktıları olan q değerlerini döndürmek için yapıyoruz.

01:53.500 --> 01:56.110
Ancak her eylem için bir anahtar değerimiz var.

01:56.200 --> 02:02.710
Ve daha sonra anahtar değerlerin maksimumunu alarak ya da yumuşak bir Max yöntemi kullanarak son

02:02.710 --> 02:03.880
işlemi geri alacağız.

02:04.030 --> 02:05.270
Bunu daha sonra göreceğiz.

02:05.440 --> 02:10.330
Bu dersin sonunda, init işlevini uygulayarak başlayacağız ve bir

02:10.330 --> 02:12.880
sonraki işlevi ileri işlevini uygulayacağız.

02:12.880 --> 02:13.810
O halde bunu yapalım.

02:13.810 --> 02:17.060
Önce sınıfımızı tanıtmamız gerekiyor.

02:17.200 --> 02:22.930
Bu yüzden sınıf ile başlıyoruz ve sınıf olarak ağa diyebileceğimiz bir isim veriyoruz.

02:23.650 --> 02:29.980
Ve sonra bu ağ sınıfında kalıtım denilen ve yalnızca bir üst sınıfın

02:30.310 --> 02:35.120
tüm araçlarından miras kalacak bir nesne programlama tekniği kullanacağım.

02:35.200 --> 02:41.550
Yapacağımız ağ sınıfımız, daha büyük bir sınıfın çocuk sınavıdır.

02:41.770 --> 02:44.110
Ve o modül.

02:44.470 --> 02:50.790
Dolayısıyla, sadece bu modül sınıfının tüm araçları bir sinir ağı uygulamak için elbette araçları

02:50.790 --> 02:51.940
miras almak için.

02:51.940 --> 02:57.880
Bu, mirasa dönüşen nesne tabanlı programlamada çok güçlü ve evrim hüneridir.

02:57.910 --> 03:02.670
Ve şimdi şu ana sınıfın bu modülünden kalıtım.

03:02.800 --> 03:06.000
Pekâlâ, şimdi sınıfın içine girmeye hazırız.

03:06.130 --> 03:12.910
Bu yüzden iki kez enter tuşuna basacağım, çünkü iki işlev yapacağız ve son işlevi

03:13.140 --> 03:14.280
ile başlıyoruz.

03:14.350 --> 03:20.470
Yani init işlevi, bu şekilde bu derste iki, sonra da onunla adlandırmamız gerekir.

03:20.650 --> 03:25.750
Ve sonra şunu tekrar söyleyelim ki, sadece Python sözdizimi bunun nasıl yapılacağı gibi görünüyor.

03:25.930 --> 03:28.460
Ve sonra argümanları koymamız gerek.

03:28.720 --> 03:30.340
Bu yüzden üç argümanımız var.

03:30.340 --> 03:35.800
Birincisi, benlik ve benlik olan zorunlu bir argümandır.

03:35.800 --> 03:42.250
Bu sınıftan yaratılacak nesneye atıfta bulunan, onun hakkında yapmak istediğimiz gizem

03:42.250 --> 03:42.810
yok.

03:42.820 --> 03:44.400
Bu sınıfta olduğumuzu biliyorsun.

03:44.470 --> 03:48.980
Sanki bu sinir ağı kurmak istediğimiz bazı talimatlar gibidir.

03:49.180 --> 03:53.620
Ve sonra sınıf hazır olduğunda, istediğimiz kadar çok ağ yapabiliriz.

03:53.620 --> 04:00.130
Ve bu yeni ağların her biri bu sınıfın bir nesnesi olacak ve

04:00.400 --> 04:07.630
nesneyi başka bazı amaçlar için kullanacağımızdan, ancak nesnenin değişkenleri ne olacak ve Spudis'e, bu

04:07.630 --> 04:11.900
ben'i burada kullandığımızı belirtmek için kullanıyoruz. Nesneyi kastediyorsun.

04:12.100 --> 04:18.430
Dolayısıyla, nesneden kullanılabilirliği kullanmak istediğimde, nesnenin değişkeni olduğunu belirtmek için

04:18.430 --> 04:21.340
değişkenin önüne kendini kullanacağım.

04:21.340 --> 04:25.680
ve çıktı nöronlarının sayısı olan iki argüman daha var.

04:25.680 --> 04:30.240
Pekâlâ, bu ilk argüman ve sonra elimizde girdi nöronlarının sayısı

04:30.550 --> 04:38.220
Dolayısıyla girdi nöronlarının sayısı girdi büyüklüğü ve aslında beştir, çünkü girdi

04:38.310 --> 04:45.890
vektörlerimizin beş yönü üç sinyale, artı eksi yöne çevirme, çevrenin

04:45.900 --> 04:51.020
bir durumunu tanımlayan kodlanmış vektörler vektörlerine sahiptir.

04:51.210 --> 04:54.960
Bu beş değer çevre ortamını tanımlamak için yeterlidir.

04:54.960 --> 05:00.600
Daha az değer veya daha fazla değer düşünebilirdik ama denedim ve aslında mantıklıydı,

05:00.600 --> 05:05.520
çünkü aslında bizden solda biri doğru, sağdan bir işarete ihtiyacımız var.

05:05.520 --> 05:10.860
zaman bu yönlendirme ve eksi yönlendirme size aittir. Ulaşmaya çalıştığınız hedefi takip edin.

05:10.860 --> 05:17.370
Arabayı ne zaman kullanacağımızı biliyorsunuz, 360 araçlık bir sinyal için Google araçlarının tepesindeki sinyaller gibi,

05:17.400 --> 05:22.200
üç sensörle tamamen kendi kendine çalışabildiğimiz sinyalleri elde edebiliyorduk ve o

05:22.530 --> 05:29.160
Ve elbette ki ağımızın eylemlere karşılık gelen çıkış nöronları var ve üç olası eylemin

05:29.160 --> 05:32.840
sola doğru gittiğini ya da doğru gittiğini söylüyoruz.

05:32.880 --> 05:38.520
Ve bu yüzden onu ve eylemi arayacağım ve üç tane olacak.

05:38.520 --> 05:39.030
Tamam.

05:39.120 --> 05:44.850
Şu ana kadar sadece girdilere ad vermek zorundayız ve bu voleybolu, sinir ağı içindeki koşulları

05:44.940 --> 05:46.140
yapmak için kullanacağız.

05:47.090 --> 05:55.010
Pekâlâ, o zaman meşale hüneriyle başkasını kullanarak başlayın; bu hüner, aslında modülden

05:55.010 --> 05:59.310
devralan bir işlev olan bir süper işlevdir.

05:59.390 --> 06:02.730
Bu yüzden modülü miras almak için kalıtım kullanmak zorunda kaldık.

06:02.750 --> 06:04.440
Kullanan ilk kişi budur.

06:04.520 --> 06:11.120
Ve temel olarak, çok daha verimli olan modül araçlarını kullanabilmek için yalnızca bu

06:11.580 --> 06:13.320
süper hile süperfonksiyonunu kullanıyoruz.

06:13.670 --> 06:18.620
Ve süper fonksiyonun içinde öncelikle şebekeyi belirtmeliyim.

06:18.650 --> 06:25.100
sınıfımız bu, üst sınıf modülünden ve daha sonra nesnemizden miras kaldığı için.

06:25.550 --> 06:27.360
Bu, bildiğimiz ağ eğitim

06:27.380 --> 06:35.220
Ve sonra sadece onu ekledim ve tam olarak adlandırdığımız şekilde böyle bir işlevi görüyoruz.

06:35.570 --> 06:39.350
Pekâlâ, elimdeki bütün araçları kullanmak için olan bir hüner.

06:39.360 --> 06:46.270
Ve o modülde girdi katmanını belirleyen bir sonraki adıma geçebiliriz.

06:46.550 --> 06:53.300
Temelde ne yapmam gereken nesneye eklenecek yeni bir değişkeni tanıtmak ve

06:53.300 --> 06:57.120
bu değişken giriş nöronlarının sayısını içerecektir.

06:57.170 --> 07:05.140
Dolayısıyla girdi boyutu ile karıştırılmamalıdır girdi boyutu, son fonksiyonun argümanıdır.

07:05.180 --> 07:09.710
bu, nesneye eklenen değişken değil, nesne ile ilişkili değişken.

07:09.710 --> 07:10.360
Ancak

07:10.520 --> 07:16.520
Az önce bahsettiğim gibi bunun yerine nesne ile ilişkili olduğunu belirtmeliyiz ki bir öğretilen ben

07:17.230 --> 07:22.130
kullanıyoruz ve şimdi nesneye bağlı olan bu ilk değişkene bir ad veriyoruz.

07:22.190 --> 07:24.870
Ve böylece girdi olarak aynı adı verebiliriz.

07:24.920 --> 07:33.650
Girdi boyutu diyebiliriz ve girdi boyutu olan bir fonksiyonun argümanlarına eşit olduğunu söyleyeceğiz.

07:33.680 --> 07:34.080
Tamam.

07:34.130 --> 07:39.900
Her sefer ağ sınıfından bir nesne oluşturuyorum ve girdi boyutunu belirtiyorum,

07:39.900 --> 07:41.170
örneğin 5 koyuyorum.

07:41.180 --> 07:47.330
Burada 5, dolayısıyla nesnemizin giriş boyutu değişkeni 5 değerine sahip olacak, çünkü burada

07:47.690 --> 07:54.110
bu giriş boyutu 5 olacak ve bu nedenle yeni ağımız giriş katmanında 5 giriş

07:54.110 --> 07:55.470
nöronuna sahip olacak.

07:55.490 --> 07:55.790
Tamam.

07:55.790 --> 08:02.180
Ve o zaman nesnelere eklemek istediğimiz diğer değişken için de aynı şey geçerli.

08:02.210 --> 08:08.100
Ve tahmin edebileceğiniz gibi, bunun çıktı nöronlarının sayısı için bir değişken olacağı tahmin ediliyor.

08:08.330 --> 08:15.030
Ve şunu söylemek gerekirse, cisimimizi kendimiz alıyoruz ve sonra onu ve eylem olarak adlandıracağımız nesnenin

08:15.040 --> 08:17.740
bu ikinci değişkenine bir isim veriyoruz.

08:18.170 --> 08:23.600
Ve bu, çıktı nöronlarının sayısı olan eylemler sayısı göz önüne alındığında, bu argümana

08:23.600 --> 08:24.250
eşit olacaktır.

08:24.530 --> 08:30.850
Ve bu yüzden, bunu fiili eylemle eşit olarak belirledik ve eylem üçe eşit olacak.

08:30.890 --> 08:37.930
Dolayısıyla, bir ağa nesnemize eklenen değişken ve eylem değerinin üçünü alacaktır.

08:38.240 --> 08:41.680
Aslında burada, tanımlanmamış diyor diye uyarı görebiliriz.

08:41.720 --> 08:44.180
Ve sonra da, çünkü burada kullanıyoruz.

08:44.230 --> 08:46.030
Ve sonra kısayol.

08:46.350 --> 08:48.530
Ve burada bir kısayol kullanmamız gerekiyor.

08:48.590 --> 08:52.780
Ve bizim başlangıç ​​için ve Mudgal için ve sonra kaybolur.

08:52.880 --> 08:53.670
İşte başlıyoruz.

08:53.690 --> 08:54.580
Mükemmel.

08:54.590 --> 09:00.800
Şu anda yeni uyarılarımız var, burada verilen tüm uyarılar, yalnızca içe aktardıklarının henüz kullanılmadığını

09:00.800 --> 09:01.520
belirtmek içindir.

09:01.580 --> 09:04.660
Sorun değil, daha sonra kullanacağız.

09:04.670 --> 09:10.010
Pekala, nesne için tanımlamak istediğimiz başka iki değişkenimiz var.

09:10.190 --> 09:15.820
tam bağlantılar, sinir ağımızın farklı katmanları arasındaki tam bağlantı olacaktır.

09:15.830 --> 09:16.810
Ve bu

09:16.820 --> 09:21.800
Dolayısıyla şu anda dünyada tek bir kafadan oluşan bir sinir ağı oluşturmak istediğimiz için

09:21.800 --> 09:23.440
iki tam bağlantı olacak.

09:23.570 --> 09:27.740
Giriş katmanı ile gizli katman arasında bir ilk tam bağlantı olacak.

09:27.980 --> 09:32.450
Ve tepe ile çıkış katmanı arasında bir saniye tam bağlantı.

09:32.480 --> 09:34.770
Bu yüzden, ilk tam bağlantıyla başlayalım.

09:34.890 --> 09:43.310
Onu SE1 olarak adlandıracağız Ve yine ben'i, FC birinin bunu çözmek için nesnemin bir değişkeni olduğunu belirtmek

09:43.780 --> 09:44.530
için kullanıyorum.

09:44.530 --> 09:47.490
FC birine eşit olacak.

09:47.630 --> 09:55.160
Ve şimdi modülde N'yi kullanıyoruz ve doğrusal R diye bir fonksiyon kullanacağız ve bu tam

09:55.160 --> 10:02.080
olarak nöronlar ile girdi katmanı arasındaki tam bağlantıyı buradaki nöronlara yapmak için kullanacağız.

10:02.180 --> 10:04.090
Tam bağlantıyla ne demek istiyorum.

10:04.160 --> 10:09.190
Bu, girdi katmanının tüm nöronlarının hepsinin orada Buradaki tüm nöronlara bağlanacağı

10:09.190 --> 10:09.920
anlamına gelir.

10:10.190 --> 10:16.140
Ve bu bağlantıyı yapmak için bazı doğruları koymamız gereken bu doğrusal fonksiyonu kullanıyoruz.

10:16.190 --> 10:19.880
Ve gördüğünüz gibi bu argümanlar özelliktedir.

10:19.880 --> 10:25.370
İlk yasadaki nöronların sayısı, bağlamak istediğiniz ikinci katmanın nöron

10:25.370 --> 10:30.110
sayısı olan özelliklere bağlamak istediğiniz katmanlardır; sağdaki katman

10:30.110 --> 10:32.360
ve bisikletin gerçek katmanıdır.

10:32.420 --> 10:38.850
Dolayısıyla bisiklet doğrudur, beklemek zorunda kalacağımız koşuya sadece bir miktar ağırlık değil, her bir

10:38.900 --> 10:43.350
katman için bir önyargı koymak için önyargı koymamızı sağlayacağız.

10:43.610 --> 10:46.140
Ve çok iyi, neye girdiğimizi görelim.

10:46.280 --> 10:51.850
Özelliklerin ilk argümanı, giriş katmanındaki giriş nöronlarının sayısıdır.

10:52.000 --> 10:52.930
Ve işte burada.

10:53.030 --> 10:55.080
Bu aslında yanlış.

10:55.100 --> 11:01.930
Bu, daha sonra üç sinyalli yönelim ve Mannus yönelimi ile mücadele edebilecek

11:02.200 --> 11:04.150
init fonksiyonunun argümanıdır.

11:04.160 --> 11:05.020
İşte başlıyoruz.

11:05.190 --> 11:14.300
İlk argümanlar ve koyma boyutu ve daha sonra ikinci argüman özellikleri olduğunda ikinci katmanda

11:14.300 --> 11:17.090
olmasını istediğimiz nöron sayısıdır.

11:17.180 --> 11:20.450
İlk katmana tamamen bağlı ikinci katman.

11:20.450 --> 11:24.960
Ve şimdi soru, bu gizli katmanda kaç tane nöron istediğimizdir.

11:25.220 --> 11:27.420
Pekala, çok fazla parametre eğitimi aldım.

11:27.440 --> 11:29.110
Bir sürü deney yaptım.

11:29.210 --> 11:31.940
Yaptığımız şey bu veya daha derinlerde yaptığımız şey bu.

11:31.940 --> 11:38.270
Genel olarak, spesifik problemimiz için en iyi sinir ağı ne olacağını görmek için çok fazla

11:38.270 --> 11:39.170
deney yapıyoruz.

11:39.170 --> 11:45.950
Ve bu yüzden birçok değeri deniyorum ve 30 30'luk koşu gizli bir katmandayken seçtim ve bu sayı

11:45.950 --> 11:50.750
ile bazı oldukça iyi sonuçlar elde edeceğimi göreceksiniz ancak sinir ağının mimarisini

11:50.750 --> 11:51.580
değiştirmekte özgürsünüz.

11:51.580 --> 11:53.120
Onunla oynamaktan çekinmeyin.

11:53.180 --> 11:58.730
Sadece burada ve orada nöron sayısını değiştiremezsiniz, ancak belki de daha iyi bir araba elde etmek

11:59.150 --> 12:05.000
için daha fazla katman ekleyebilirsiniz, ancak 30 hinna nöronu bize iyi bir sinir ağı ve iyi bir

12:05.000 --> 12:06.000
neden getirecektir.

12:06.020 --> 12:07.390
İşte biz de öyle yapacağız.

12:07.520 --> 12:08.410
Ve işte gidiyoruz.

12:08.420 --> 12:13.500
Bu doğrusal fonksiyon ile gerçekten ilk bağlantısımız var.

12:13.520 --> 12:16.910
Giriş katmanı ile gizli bacak arasında bağlantı kuruyoruz.

12:17.360 --> 12:23.270
Ve şimdi, gizli katman ve çıktı katmanı arasındaki tam bağlantı olan ikinci tam

12:23.600 --> 12:25.180
bağlantıyı yapma zamanı.

12:25.490 --> 12:26.750
İşte gidiyoruz.

12:26.750 --> 12:31.380
Bu ikinci tam bağlantıyı C2'de arayacağız.

12:31.490 --> 12:32.280
Oraya gidiyoruz.

12:32.360 --> 12:36.400
Ve yine de Saphir'i kullanarak daha fazla nesne için kullanılabilir.

12:36.650 --> 12:38.330
Ve sonra tekrar kullanıyoruz.

12:38.450 --> 12:45.310
Aslında bunu kopyalayabiliriz çünkü N modülünde ve daha sonra doğrusal işlev kullanacağız.

12:45.530 --> 12:49.250
Fakat sonra argümanları elbette değiştirmeliyiz.

12:49.280 --> 12:55.050
Aynı ilk şey, bağlantı ilk katmanında sahip olacağımız nöronların sayısıdır.

12:55.190 --> 12:56.510
İşte orada gizli var.

12:56.720 --> 13:03.810
Ve bu nedenle bu 30 ve daha sonra ikinci argüman, bağlantı ikinci katmanındaki

13:04.010 --> 13:08.810
nöronların sayısıdır ve çıktı katmanına ve çıktıya karşılık gelir.

13:08.980 --> 13:15.020
Ve daha sonra üç olacak gerçek nöronlar, çünkü üç olası işlemi var, ancak şimdiye

13:15.020 --> 13:16.930
kadar tanımladığımız isimleri kullanmamız gerekiyor.

13:17.050 --> 13:23.990
argümanının adı budur ve bundan dolayı burada giriyoruz ve eylem ve oraya gidiyoruz.

13:23.990 --> 13:24.950
Init işlevinin

13:24.950 --> 13:27.760
Her şeyden önce tuple bağlantılarımız yeniden.

13:27.920 --> 13:30.980
Ve ikincisi İsrail'in herhangi bir işlevi.

13:31.400 --> 13:36.940
Bu nedenle, ağ sınıfından bir nesne oluşturduğumuzda nesnemizi başlatacağız.

13:37.130 --> 13:44.300
Ve en kısa sürede bir nesne yarattığımızda değişkenlerin tümü için bu değişkenler boyut ve tepki girdiler.

13:44.380 --> 13:46.980
Siz ve ikiniz tanımlanacaktır.

13:47.180 --> 13:52.060
Ve yarattığımız her nesne için hayvan ağı mimarisini alacağız.

13:52.160 --> 13:59.450
beş girdi nöronunun 30 sinyallenmiş nöron ve üç çıktı nöronunun sinir ağı ile uyumlu olacak.

13:59.450 --> 14:00.440
Her nesne,

14:00.470 --> 14:01.430
İşte gidiyoruz.

14:01.430 --> 14:06.980
Bu birinci işleve son verildi ve şimdi ileri fonksiyon olan ikinci

14:06.980 --> 14:13.100
işleve geçebiliriz ve doğrultucu aktivasyon işlevini kullanarak sinir ağındaki nöronları aktive etmek

14:13.100 --> 14:19.500
için kullanılacak ve çoğunlukla sonuçta küp değerlerine dönecektir. sadece bir ağın çıktıları.

14:19.580 --> 14:23.420
Bu yüzden, bir sonraki öğreticide ve o zamana kadar bunu yapmak için sabırsızlanıyorum.
