Deep Learning Neural Networks Dijelaskan dalam Bahasa Inggris Biasa

Pembelajaran mesin, dan terutama pembelajaran mendalam, adalah dua teknologi yang mengubah dunia.

Setelah "musim dingin AI" yang panjang selama 30 tahun, daya komputasi dan kumpulan data akhirnya mengikuti algoritme kecerdasan buatan yang diusulkan selama paruh kedua abad ke-20.

Ini berarti bahwa model pembelajaran yang mendalam akhirnya digunakan untuk membuat prediksi efektif yang memecahkan masalah dunia nyata.

Semakin penting bagi ilmuwan data dan insinyur perangkat lunak untuk memiliki pemahaman tingkat tinggi tentang cara kerja model pembelajaran yang mendalam. Artikel ini akan menjelaskan sejarah dan konsep dasar deep learning neural networks dalam bahasa Inggris biasa.

Sejarah Pembelajaran Mendalam

Pembelajaran mendalam dikonsep oleh Geoffrey Hinton pada 1980-an. Dia secara luas dianggap sebagai bapak pendiri bidang pembelajaran mendalam. Hinton telah bekerja di Google sejak Maret 2013 ketika perusahaannya, DNNresearch Inc., diakuisisi.

Kontribusi utama Hinton di bidang pembelajaran mendalam adalah membandingkan teknik pembelajaran mesin dengan otak manusia.

Lebih khusus lagi, ia menciptakan konsep "jaringan saraf", yang merupakan algoritma pembelajaran mendalam yang terstruktur mirip dengan organisasi neuron di otak. Hinton mengambil pendekatan ini karena otak manusia bisa dibilang mesin komputasi paling kuat yang dikenal saat ini.

Struktur yang dibuat Hinton disebut jaringan saraf tiruan (atau disingkat jaringan saraf tiruan). Berikut penjelasan singkat tentang fungsinya:

  • Jaringan saraf tiruan terdiri dari lapisan node
  • Setiap node dirancang untuk berperilaku serupa dengan neuron di otak
  • Lapisan pertama jaringan saraf disebut inputlapisan, diikuti oleh hiddenlapisan, lalu terakhir outputlapisan
  • Setiap node di jaringan neural melakukan semacam penghitungan, yang diteruskan ke node lain yang lebih dalam di jaringan saraf

Berikut adalah visualisasi yang disederhanakan untuk menunjukkan cara kerjanya:

Visualisasi jaringan saraf tiruan

Jaringan saraf mewakili langkah maju yang luar biasa dalam bidang pembelajaran mendalam.

Namun, butuh waktu puluhan tahun agar pembelajaran mesin (dan terutama pembelajaran mendalam) menjadi terkenal.

Kami akan mempelajari alasannya di bagian selanjutnya.

Mengapa Pembelajaran Mendalam Tidak Segera Berhasil

Jika pembelajaran mendalam awalnya dipahami beberapa dekade yang lalu, mengapa hal itu baru mulai mendapatkan momentum hari ini?

Itu karena model pembelajaran mendalam yang matang membutuhkan dua sumber daya yang berlimpah:

  • Data
  • Daya komputasi

Pada saat lahirnya konsep pembelajaran mendalam, para peneliti tidak memiliki akses yang cukup ke data atau daya komputasi untuk membangun dan melatih model pembelajaran mendalam yang bermakna. Ini telah berubah dari waktu ke waktu, yang menyebabkan keunggulan deep learning saat ini.

Memahami Neuron dalam Pembelajaran Mendalam

Neuron adalah komponen penting dari model pembelajaran mendalam apa pun.

Faktanya, orang dapat berargumen bahwa Anda tidak dapat sepenuhnya memahami pembelajaran mendalam dengan memiliki pengetahuan yang mendalam tentang cara kerja neuron.

Bagian ini akan memperkenalkan Anda pada konsep neuron dalam pembelajaran mendalam. Kita akan berbicara tentang asal mula neuron pembelajaran mendalam, bagaimana mereka terinspirasi oleh biologi otak manusia, dan mengapa neuron begitu penting dalam model pembelajaran mendalam saat ini.

Apa itu Neuron dalam Biologi?

Neuron dalam pembelajaran mendalam terinspirasi oleh neuron di otak manusia. Berikut adalah diagram anatomi neuron otak:

Anatomi neuron di otak

Seperti yang Anda lihat, neuron memiliki struktur yang cukup menarik. Sekelompok neuron bekerja bersama di dalam otak manusia untuk melakukan fungsi yang kita butuhkan dalam kehidupan sehari-hari.

Pertanyaan yang diajukan Geoffrey Hinton selama penelitian pentingnya di jaringan saraf adalah apakah kita dapat membangun algoritme komputer yang berperilaku mirip dengan neuron di otak. Harapannya adalah dengan meniru struktur otak, kita dapat menangkap sebagian dari kemampuannya.

Untuk melakukan ini, para peneliti mempelajari cara neuron berperilaku di otak. Satu pengamatan penting adalah bahwa neuron dengan sendirinya tidak berguna. Sebaliknya, Anda memerlukan jaringan neuron untuk menghasilkan fungsionalitas yang berarti.

Ini karena neuron berfungsi dengan menerima dan mengirim sinyal. Lebih khusus lagi, neuron dendritesmenerima sinyal dan meneruskan sinyal tersebut melalui axon.

Satu dendritesneuron terhubung ke axonneuron lain. Koneksi ini disebut synapses, yang merupakan konsep yang telah digeneralisasikan ke bidang pembelajaran yang mendalam.

Apa itu Neuron dalam Pembelajaran Mendalam?

Neuron dalam model pembelajaran mendalam adalah node tempat data dan komputasi mengalir.

Neuron bekerja seperti ini:

  • Mereka menerima satu atau lebih sinyal masukan. Sinyal masukan ini dapat berasal dari kumpulan data mentah atau dari neuron yang ditempatkan di lapisan jaringan saraf sebelumnya.
  • Mereka melakukan beberapa perhitungan.
  • Mereka mengirimkan beberapa sinyal keluaran ke neuron yang lebih dalam di jaringan saraf melalui a synapse.

Berikut adalah diagram fungsi neuron dalam jaringan saraf pembelajaran yang dalam:

Fungsi neuron dalam model deep learning

Mari kita telusuri diagram ini selangkah demi selangkah.

Seperti yang Anda lihat, neuron dalam model pembelajaran mendalam mampu memiliki sinapsis yang terhubung ke lebih dari satu neuron di lapisan sebelumnya. Setiap sinaps memiliki keterkaitan weight, yang berdampak pada pentingnya neuron sebelumnya dalam keseluruhan jaringan saraf.

Bobot adalah topik yang sangat penting di bidang deep learning karena menyesuaikan bobot model adalah cara utama untuk melatih model deep learning. Anda akan melihat ini dalam praktiknya nanti saat kami membangun jaringan neural pertama kami dari awal.

Setelah neuron menerima masukannya dari neuron di lapisan model sebelumnya, ia menambahkan setiap sinyal dikalikan dengan bobot yang sesuai dan meneruskannya ke fungsi aktivasi, seperti ini:

Fungsi aktivasi neuron

Fungsi aktivasi menghitung nilai keluaran untuk neuron. Nilai keluaran ini kemudian diteruskan ke lapisan berikutnya dari jaringan saraf melalui sinapsis lain.

Ini berfungsi sebagai gambaran umum neuron pembelajaran mendalam. Jangan khawatir jika itu terlalu banyak - kita akan belajar lebih banyak tentang neuron di sisa tutorial ini. Untuk saat ini, Anda cukup memiliki pemahaman tingkat tinggi tentang bagaimana mereka disusun dalam model pembelajaran yang mendalam.

Fungsi Aktivasi Pembelajaran Mendalam

Fungsi aktivasi adalah konsep inti yang harus dipahami dalam pembelajaran mendalam.

Mereka adalah apa yang memungkinkan neuron dalam jaringan saraf untuk berkomunikasi satu sama lain melalui sinapsisnya.

Di bagian ini, Anda akan belajar memahami pentingnya dan fungsionalitas fungsi aktivasi dalam pembelajaran mendalam.

Apa Fungsi Aktivasi dalam Pembelajaran Mendalam?

Pada bagian terakhir, kita mempelajari bahwa neuron menerima sinyal masukan dari lapisan jaringan saraf sebelumnya. Jumlah bobot sinyal-sinyal ini dimasukkan ke dalam fungsi aktivasi neuron, kemudian keluaran fungsi aktivasi diteruskan ke lapisan jaringan berikutnya.

Ada empat jenis fungsi aktivasi utama yang akan kita bahas dalam tutorial ini:

  • Fungsi ambang batas
  • Fungsi sigmoid
  • Fungsi penyearah, atau ULT
  • Fungsi Tangen Hiperbolik

Mari bekerja melalui fungsi aktivasi ini satu per satu.

Fungsi Ambang Batas

Fungsi ambang menghitung sinyal keluaran yang berbeda tergantung pada apakah masukannya berada di atas atau di bawah ambang tertentu. Ingat, nilai masukan ke fungsi aktivasi adalah jumlah bobot nilai masukan dari lapisan sebelumnya di jaringan saraf.

Secara matematis, berikut adalah definisi formal dari fungsi ambang pembelajaran yang dalam:

Fungsi ambang batas

Seperti yang ditunjukkan gambar di atas, fungsi ambang terkadang juga disebut a unit step function.

Fungsi ambang mirip dengan variabel boolean dalam pemrograman komputer. Nilai yang dihitung adalah 1(mirip dengan True) atau 0(setara dengan False).

Fungsi Sigmoid

Fungsi sigmoid terkenal di kalangan komunitas data science karena penggunaannya dalam regresi logistik, salah satu teknik pembelajaran mesin inti yang digunakan untuk menyelesaikan masalah klasifikasi.

Fungsi sigmoid dapat menerima nilai apa pun, tetapi selalu menghitung nilai antara 0dan 1.

Berikut definisi matematis dari fungsi sigmoid:

Fungsi sigmoid

Salah satu keuntungan dari fungsi sigmoid dibandingkan dengan fungsi threshold adalah kurva yang halus. Artinya, dimungkinkan untuk menghitung turunan di titik mana pun di sepanjang kurva.

Fungsi Penyearah

Fungsi penyearah tidak memiliki properti kehalusan yang sama seperti fungsi sigmoid dari bagian terakhir. Namun, ini masih sangat populer di bidang pembelajaran yang mendalam.

Fungsi penyearah didefinisikan sebagai berikut:

  • Jika nilai masukan lebih kecil dari 0, maka fungsi akan dikeluarkan0
  • Jika tidak, fungsi mengeluarkan nilai masukannya

Inilah konsep yang dijelaskan secara matematis:

Fungsi penyearah

Fungsi penyearah sering disebut Rectified Linear Unitfungsi aktivasi, atau ReLUsdisingkat.

Fungsi Tangen Hiperbolik

Fungsi tangen hiperbolik adalah satu-satunya fungsi aktivasi yang disertakan dalam tutorial ini yang didasarkan pada identitas trigonometri.

Definisi matematisnya ada di bawah ini:

Fungsi tangen hiperbolik

Fungsi tangen hiperbolik serupa tampilannya dengan fungsi sigmoid, tetapi nilai keluarannya semuanya bergeser ke bawah.

Bagaimana Jaringan Neural Benar-benar Bekerja?

Sejauh ini dalam tutorial ini, kita telah membahas dua blok bangunan untuk membangun jaringan saraf:

  • Neuron
  • Fungsi aktivasi

Namun, Anda mungkin masih agak bingung tentang cara kerja jaringan neural.

Tutorial ini akan mengumpulkan bagian-bagian yang telah kita diskusikan sehingga Anda dapat memahami cara kerja jaringan saraf dalam praktiknya.

Contoh Yang Akan Kami Gunakan Dalam Tutorial Ini

Tutorial ini akan bekerja melalui contoh dunia nyata selangkah demi selangkah sehingga Anda dapat memahami bagaimana jaringan saraf membuat prediksi.

Lebih khusus lagi, kita akan berurusan dengan penilaian properti.

Anda mungkin sudah tahu bahwa ada banyak faktor yang mempengaruhi harga rumah, termasuk ekonomi, tingkat suku bunga, jumlah kamar tidur / kamar mandi, dan lokasinya.

Dimensi tinggi dari kumpulan data ini menjadikannya kandidat yang menarik untuk membangun dan melatih jaringan saraf.

Satu peringatan tentang bagian ini adalah jaringan saraf yang akan kami gunakan untuk membuat prediksi telah dilatih . Kami akan mempelajari proses untuk melatih jaringan neural baru di bagian selanjutnya dari tutorial ini.

Parameter Dalam Kumpulan Data Kami

Mari kita mulai dengan membahas parameter dalam kumpulan data kita. Lebih spesifiknya, mari kita bayangkan bahwa kumpulan data berisi parameter berikut:

  • Rekaman persegi
  • Kamar tidur
  • Jarak ke pusat kota
  • Usia rumah

Keempat parameter ini akan membentuk lapisan masukan jaringan saraf tiruan. Perhatikan bahwa pada kenyataannya, kemungkinan ada lebih banyak parameter yang dapat Anda gunakan untuk melatih jaringan neural untuk memprediksi harga rumah. Kami telah membatasi jumlah ini menjadi empat untuk menjaga agar contoh tetap sederhana.

Bentuk Paling Dasar dari Jaringan Neural

Dalam bentuknya yang paling dasar, jaringan neural hanya memiliki dua lapisan - lapisan masukan dan lapisan keluaran. Lapisan keluaran adalah komponen jaringan saraf yang benar-benar membuat prediksi.

Misalnya, jika Anda ingin membuat prediksi menggunakan model penjumlahan berbobot sederhana (juga disebut regresi linier), jaringan neural Anda akan mengambil bentuk berikut:

Jaringan saraf dasar

Meskipun diagram ini agak abstrak, intinya adalah sebagian besar jaringan saraf dapat divisualisasikan dengan cara ini:

  • Lapisan masukan
  • Mungkin beberapa lapisan tersembunyi
  • Lapisan keluaran

Ini adalah lapisan neuron tersembunyi yang menyebabkan jaringan saraf menjadi begitu kuat untuk menghitung prediksi.

Untuk setiap neuron di lapisan tersembunyi, ia melakukan kalkulasi menggunakan beberapa (atau semua) neuron di lapisan terakhir jaringan saraf. Nilai-nilai ini kemudian digunakan di lapisan berikutnya dari jaringan saraf.

Tujuan Neuron di Lapisan Tersembunyi Jaringan Neural

Anda mungkin bertanya-tanya - apa sebenarnya setiap neuron pada lapisan tersembunyi berarti ? Dengan kata lain, bagaimana seharusnya praktisi pembelajaran mesin menafsirkan nilai-nilai ini?

Secara umum, neuron di lapisan midden dari jaringan saraf diaktifkan (artinya fungsi aktivasi mereka kembali 1) untuk nilai input yang memenuhi sub-properti tertentu.

Untuk model prediksi harga rumah kita, salah satu contohnya adalah rumah dengan 5 kamar tidur dengan jarak yang kecil ke pusat kota.

Dalam kebanyakan kasus lain, mendeskripsikan karakteristik yang akan menyebabkan neuron di lapisan tersembunyi aktif tidaklah mudah.

Bagaimana Neuron Menentukan Nilai Inputnya

Di awal tutorial ini, saya menulis "Untuk setiap neuron di lapisan tersembunyi, ia melakukan penghitungan menggunakan beberapa (atau semua) neuron di lapisan terakhir jaringan saraf."

Ini mengilustrasikan poin penting - bahwa setiap neuron dalam jaringan saraf tidak perlu menggunakan setiap neuron di lapisan sebelumnya.

Proses di mana neuron menentukan nilai masukan yang akan digunakan dari lapisan sebelumnya dari jaringan saraf disebut melatih model. Kita akan mempelajari lebih lanjut tentang melatih jaringan saraf di bagian selanjutnya dari kursus ini.

Memvisualisasikan Proses Prediksi Jaringan Neural

Saat memvisualisasikan jaringan netral, kami biasanya menggambar garis dari lapisan sebelumnya ke lapisan saat ini setiap kali neuron sebelumnya memiliki bobot 0di atas dalam rumus jumlah tertimbang untuk neuron saat ini.

Gambar berikut akan membantu memvisualisasikan ini:

Jaringan neural yang lengkap

Seperti yang Anda lihat, tidak setiap pasangan neuron-neuron memiliki sinaps. x4hanya memberi makan tiga dari lima neuron di lapisan tersembunyi, sebagai contoh. Ini menggambarkan poin penting saat membangun jaringan neural - bahwa tidak semua neuron di lapisan sebelumnya harus digunakan di lapisan berikutnya dari jaringan saraf.

Bagaimana Jaringan Neural Dilatih

Sejauh ini Anda telah mempelajari hal berikut tentang jaringan saraf:

  • Bahwa mereka terdiri dari neuron
  • Bahwa setiap neuron menggunakan fungsi aktivasi yang diterapkan pada jumlah bobot keluaran dari lapisan jaringan saraf sebelumnya.
  • Ringkasan luas tanpa kode tentang cara jaringan neural membuat prediksi

Kami belum membahas bagian yang sangat penting dari proses rekayasa jaringan saraf: bagaimana jaringan saraf dilatih.

Sekarang Anda akan mempelajari bagaimana jaringan saraf dilatih. Kami akan membahas kumpulan data, algoritme, dan prinsip luas yang digunakan dalam melatih jaringan neural modern yang memecahkan masalah dunia nyata.

Hard-Coding vs. Soft-Coding

Ada dua cara utama untuk mengembangkan aplikasi komputer. Sebelum mempelajari bagaimana jaringan saraf dilatih, penting untuk memastikan bahwa Anda memiliki pemahaman tentang perbedaan antara hard-codingdan soft-codingprogram komputer.

Hard-coding berarti Anda secara eksplisit menentukan variabel input dan variabel output yang Anda inginkan. Dengan kata lain, hard-coding tidak menyisakan ruang bagi komputer untuk menafsirkan masalah yang Anda coba selesaikan.

Soft-coding adalah kebalikannya. Ini memberikan ruang bagi program untuk memahami apa yang terjadi dalam kumpulan data. Pengodean lunak memungkinkan komputer untuk mengembangkan pendekatan pemecahan masalahnya sendiri.

Contoh spesifik sangat membantu di sini. Berikut adalah dua contoh bagaimana Anda dapat mengidentifikasi kucing dalam kumpulan data menggunakan teknik pengkodean lunak dan pengkodean keras.

  • Pengkodean keras: Anda menggunakan parameter tertentu untuk memprediksi apakah seekor hewan adalah kucing. Lebih khusus lagi, Anda dapat mengatakan bahwa jika berat dan panjang hewan berada dalam batas tertentu
  • Pengodean lunak: Anda memberikan kumpulan data yang berisi hewan yang diberi label dengan jenis spesies dan karakteristik tentang hewan tersebut. Kemudian Anda membangun program komputer untuk memprediksi apakah seekor hewan itu kucing atau bukan berdasarkan karakteristik dalam kumpulan data.

Seperti yang Anda bayangkan, melatih jaringan saraf termasuk dalam kategori pengkodean lunak. Ingatlah hal ini saat Anda melanjutkan kursus ini.

Melatih Jaringan Neural Menggunakan Fungsi Biaya

Jaringan syaraf tiruan dilatih menggunakan a cost function, yaitu persamaan yang digunakan untuk mengukur kesalahan yang terdapat dalam prediksi jaringan.

Rumus untuk fungsi deep learning cost (yang jumlahnya banyak - ini hanya satu contoh) adalah di bawah ini:

Persamaan fungsi biaya

Catatan: fungsi biaya ini disebut the mean squared error, itulah sebabnya ada MSE di sisi kiri tanda sama dengan.

Meskipun ada banyak rumus matematika dalam persamaan ini, paling baik diringkas sebagai berikut:

Take the difference between the predicted output value of an observation and the actual output value of that observation. Square that difference and divide it by 2.

Untuk mengulangi, perhatikan bahwa ini hanyalah salah satu contoh fungsi biaya yang dapat digunakan dalam pembelajaran mesin (meskipun diakui sebagai pilihan paling populer). Pilihan fungsi biaya yang akan digunakan merupakan topik yang kompleks dan menarik, dan di luar cakupan tutorial ini.

Seperti yang telah disebutkan, tujuan dari jaringan syaraf tiruan adalah untuk meminimalkan nilai dari fungsi biaya. Fungsi biaya diminimalkan jika nilai prediksi algoritme Anda sedekat mungkin dengan nilai sebenarnya. Dengan kata lain, tujuan dari jaringan saraf adalah untuk meminimalkan kesalahan yang dibuat dalam prediksinya!

Memodifikasi Jaringan Neural

Setelah jaringan saraf awal dibuat dan fungsi biaya diperhitungkan, perubahan dilakukan pada jaringan saraf untuk melihat apakah mereka mengurangi nilai fungsi biaya.

Lebih khusus lagi, komponen sebenarnya dari jaringan saraf yang dimodifikasi adalah bobot setiap neuron pada sinapsnya yang berkomunikasi ke lapisan jaringan berikutnya.

Mekanisme yang melaluinya bobot dimodifikasi untuk memindahkan jaringan saraf ke bobot dengan lebih sedikit kesalahan disebut gradient descent. Untuk saat ini, Anda cukup memahami bahwa proses melatih jaringan saraf terlihat seperti ini:

  • Bobot awal untuk nilai input setiap neuron ditetapkan
  • Prediksi dihitung menggunakan nilai awal ini
  • Prediksi dimasukkan ke dalam fungsi biaya untuk mengukur kesalahan jaringan saraf
  • Algoritme penurunan gradien mengubah bobot untuk setiap nilai input neuron
  • Proses ini dilanjutkan hingga bobot berhenti berubah (atau hingga jumlah perubahannya di setiap iterasi turun di bawah ambang yang ditentukan)

Ini mungkin tampak sangat abstrak - dan tidak apa-apa! Konsep ini biasanya hanya dipahami sepenuhnya saat Anda mulai melatih model pembelajaran mesin pertama Anda.

Pikiran Akhir

Dalam tutorial ini, Anda belajar tentang bagaimana jaringan neural melakukan komputasi untuk membuat prediksi yang berguna.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang membangun, melatih, dan menerapkan model pembelajaran mesin mutakhir, Pembelajaran Mesin Pragmatis eBook saya akan mengajari Anda cara membuat 9 model pembelajaran mesin yang berbeda menggunakan proyek dunia nyata.

Anda dapat menerapkan kode dari eBook ke GitHub atau portofolio pribadi Anda untuk ditunjukkan kepada calon pemberi kerja. Buku ini diluncurkan pada 3 Agustus - pesan di muka dengan diskon 50% sekarang!