Machine Learning itu menyenangkan seri 1
Catatan : artikel ini merupakan terjemahan dari artikelnya adam geigey yang diposting di medium.com ( artikel asli )
Dari sini, bisakah anda mencari tahu masalah matematika apa yang sedang anda hadapi?
anda tau anda seharusnya "melakukan sesuatu" dengan angka yang ada di kiri untuk mendapatkan setiap jawaban di kanan.
Di Supervised Learning, anda membiarkan komputer anda menyelesaikan hubungan/masalah tersebut untuk anda dan begitu anda tahu matematika apa yang diperlukan untuk menyelesaikan serangkaian masalah khusus ini, anda akan bisa menyelesaikan masalah lain yang serupa.
catatan : ada banyak jenis algoritman lainnya, tapi jenis ini adalah permulaan yang bagus untuk mulai.
Jika Anda bermain-main dengan ini selama berjam-jam, Anda mungkin berakhir dengan sesuatu yang bekerja seperti itu. Tetapi program Anda tidak akan pernah sempurna dan akan sulit untuk dipertahankan karena harga berubah.
Bukankah lebih baik jika komputer bisa mengetahui cara mengimplementasikan fungsi ini untuk Anda? Siapa yang peduli dengan fungsi sebenarnya selama ia mengembalikan angka yang benar:
Salah satu cara untuk memikirkan masalah ini adalah bahwa harganya adalah sup yang lezat dan bahan-bahannya adalah jumlah kamar tidur, squarefeet dan lingkungan. Jika Anda bisa mengetahui seberapa besar masing-masing bahan memengaruhi harga akhir, mungkin ada rasio bahan yang tepat untuk diaduk untuk menghasilkan harga akhir.
Perhatikan angka ajaib dalam huruf tebal - .841231951398213, 1231.1231231, 2.3242341421, dan 201.23432095. Ini adalah bobot kita. Jika kita bisa mengetahui bobot sempurna untuk menggunakan pekerjaan itu untuk setiap rumah, fungsi kita bisa memprediksi harga rumah!
Cara bodoh untuk mengetahui bobot terbaik :
Mulai dengan mengatur setiap bobot menjadi 1.0 :
Jalankan setiap rumah yang Anda tahu melalui fungsi Anda dan lihat seberapa jauh fungsi tersebut dengan menebak harga yang benar untuk setiap rumah:
Misalnya, jika rumah pertama benar-benar dijual seharga $ 250.000, tetapi fungsi Anda menebak itu dijual seharga $ 178.000, meleset $ 72.000 untuk satu rumah itu.
Sekarang tambahkan jumlah kuadrat meleset Anda untuk setiap rumah yang Anda miliki dalam kumpulan data Anda. Katakanlah Anda memiliki 500 penjualan rumah dalam kumpulan data Anda dan kuadrat dari seberapa banyak fungsi yang meleset untuk setiap rumah adalah total $ 86.123.373. Begitulah "salah" fungsi Anda saat ini.
Sekarang, ambil jumlah total itu dan bagi dengan 500 untuk mendapatkan rata-rata seberapa jauh yang meleset untuk setiap rumah. Sebut jumlah kesalahan rata-rata ini biaya fungsi Anda.
Jika Anda bisa mendapatkan biaya ini menjadi nol dengan bermain dengan bobot, fungsi Anda akan sempurna. Ini berarti bahwa dalam setiap kasus, fungsi Anda dengan sempurna menebak harga rumah berdasarkan data input. Jadi itulah tujuan kami - dapatkan biaya ini serendah mungkin dengan mencoba bobot yang berbeda.
Sekarang mari kita menulis ulang persamaan yang persis sama, tetapi menggunakan sekelompok jargon matematikanya Machine Learning (yang dapat Anda abaikan untuk saat ini):
θ yang mewakili bobot Anda saat ini. J (θ) berarti ‘biaya untuk bobot Anda saat ini '.
Persamaan ini menunjukkan betapa salahnya fungsi estimasi harga kita untuk bobot yang saat ini kami tetapkan.
Jika kita membuat grafik persamaan biaya ini untuk semua nilai yang mungkin dari bobot kita untuk jumlah_dari_tempat_tidur dan sqft, kita akan mendapatkan grafik yang mungkin terlihat seperti ini:
Dalam grafik ini, titik terendah berwarna biru adalah di mana biaya kita adalah yang terendah - dengan demikian fungsi ini adalah yang paling tidak salah. Poin tertinggi adalah di mana kita paling salah. Jadi jika kita dapat menemukan bobot yang membawa kita ke titik terendah pada grafik ini, kita akan memiliki jawaban!
Jadi kita hanya perlu menyesuaikan bobot kita sehingga kita "berjalan menuruni bukit" pada grafik ini menuju titik terendah. Jika kita terus melakukan penyesuaian kecil pada bobot yang selalu bergerak menuju titik terendah, kita akhirnya akan sampai di sana tanpa harus mencoba terlalu banyak bobot yang berbeda.
Jika Anda mengingat sesuatu dari Kalkulus ( susah ni pelajaran ), Anda mungkin ingat bahwa jika Anda mengambil turunan dari suatu fungsi, ia memberi tahu Anda kemiringan garis singgung fungsi pada titik mana pun. Dengan kata lain, ini memberitahu kita jalan mana yang menurun untuk setiap titik tertentu pada grafik kita. Kita bisa menggunakan pengetahuan itu untuk berjalan menuruni bukit.
Jadi jika kita menghitung turunan parsial dari fungsi biaya kita sehubungan dengan masing-masing bobot kita, maka kita dapat mengurangi nilai itu dari setiap bobot. Itu akan membawa kita satu langkah lebih dekat ke dasar bukit. Terus lakukan itu dan akhirnya kita akan mencapai dasar bukit dan memiliki nilai terbaik untuk bobot kita. (Jika itu tidak masuk akal, jangan khawatir dan terus membaca).
Itu adalah ringkasan tingkat tinggi dari satu cara untuk menemukan bobot terbaik untuk fungsi Anda yang disebut turunan gradien . Jangan takut untuk menggali lebih dalam jika Anda tertarik mempelajari detailnya.
Ketika Anda menggunakan Machine Learning untuk memecahkan masalah nyata, semua ini akan dilakukan untuk Anda. Tetapi masih bermanfaat untuk memiliki gagasan yang bagus tentang apa yang terjadi.
Juga, saya mengabaikan ide overfitting. Sangat mudah untuk menghasilkan seperangkat bobot yang selalu berfungsi sempurna untuk memprediksi harga rumah dalam kumpulan data asli Anda, tetapi tidak pernah benar-benar berfungsi untuk rumah baru yang tidak ada dalam kumpulan data asli Anda. Tetapi ada beberapa cara untuk mengatasinya (seperti regularisasi dan menggunakan kumpulan data validasi silang). Mempelajari cara menangani masalah ini adalah bagian penting dari mempelajari cara menerapkan Machine Learning dengan sukses.
Jadi ingat, jika seorang ahli manusia tidak bisa menggunakan data untuk memecahkan masalah secara manual, komputer mungkin tidak akan bisa melakukannya. Alih-alih, fokuslah pada masalah di mana manusia dapat memecahkan masalah, tetapi di mana akan lebih baik jika komputer dapat menyelesaikannya lebih cepat.
Bagaimana cara belajar lebih jauh tentang Machine Learning
alam pikiran saya, masalah terbesar dengan pembelajaran mesin saat ini adalah bahwa sebagian besar hidup di dunia akademik dan kelompok penelitian komersial. Tidak banyak materi yang mudah dipahami di luar sana untuk orang-orang yang ingin mendapatkan pemahaman luas tanpa benar-benar menjadi ahli. Tapi itu menjadi sedikit lebih baik setiap hari.
Jika Anda ingin mencoba apa yang telah Anda pelajari dalam artikel ini, saya membuat kursus yang membimbing Anda melalui setiap langkah artikel ini, termasuk menulis semua kode. Cobalah!
Jika Anda ingin lebih dalam, kelas Machine Learning gratis Andrew Ng di Coursera cukup luar biasa sebagai langkah selanjutnya. Saya sangat merekomendasikannya. Itu harus dapat diakses oleh siapa saja yang memiliki Comp. Sci. gelar dan yang mengingat jumlah matematika yang sangat minim.
Selain itu, Anda dapat bermain-main dengan banyak algoritma pembelajaran mesin dengan mengunduh dan menginstal SciKit-Learn. Ini adalah kerangka kerja python yang memiliki versi "kotak hitam" dari semua algoritma standar
Apa itu Machine Learning ?
machine learning adalah gagasan/ide bahwa ada algoritma umum yang dapat memberi tahu anda sesuatu yang menarik tentang sekumpulan data yang dapat memecahkan masalah tanpa harus anda tuliskan kode yang khusus untuknya. alih-alih menulis kode, anda hanya perlu memberikannya makan berupa data dan nantinya algoritma umum tsb akan membangun logikanya sendiri berdasarkan data yang telah anda berikan.
sebagai contoh : satu jenis algoritma adalah algoritma klasifikasi. algoritma ini dapat menempatkan data ke dalam grup yang berbeda-beda. algoritma klasifikasi yang sama yang digunakan untuk mengenali nomor tulisan tangan juga dapat digunakan untuk mengklasifikasikan email menjadi spam dan bukan-spam tanpa mengubah sebaris kode pun. Ini adalah algoritma yang sama tetapi diumpankan dengan data pelatihan yang berbeda sehingga muncul dengan logika klasifikasi yang berbeda.
This machine learning algorithm is a black box that can be re-used for lots of different classification problems
"Machine Learning" adalah istilah umum yang mencakup banyak jenis algoritma umum.
Dua jenis aloritma Machine Learning
anda dapat menanggap algoritma Machine Learning itu terbagi menjadi 2 macam kategori umum, Supervised Learning dan Unsupervised Learning. perbedaan ini simpel tapi sangat penting.
Supervised Learning ( pembelajaran yang diawasi )
katakanlah anda adalah agen properti. bisnis anda berkembang ,jadi anda banyak menyewa peserta agen trainee baru, tapi ada masalah - anda dapat melirik rumah dan dapat memperkirakan harga yang pas, tetapi trainee anda tidak memiliki pengalaman sehingga mereka tidak tahu bagaimana cara memberi harga yang sesuai.
untuk membantu trainee anda ( dan mungkin juga membebaskan diri anda untuk liburan ), anda memutuskan untuk membuat suatu aplikasi kecil yang dapat memperkirakan harga sebuah rumah berdasarkan ukuran,lingkungan,dan lain-lain.
jadi, anda mencatat setiap kali seseorang menjual rumah selama 3 bulan. untuk setiap rumah anda menuliskan detailnya -jumlah kamar tidur,ukuran,dll dan yang palin penting anda menuliskan harga jual akhir.
inilah yang dinamakan training data
Menggunakan Training Data tsb,anda ingin mencoba membuat aplikasi yang dapat memperkirakan berapa harga rumah lain yang ada di sekitar kawasan anda.
menggunakan Training data untuk memprediksi rumah lainnya
ini disebut Supervised Learning. anda tau berapa harga setiap rumah terjual, jadi dengan kata lain, anda tau jawaban dari permasalahnya dan bisa bekerja dari sana untuk mencari tahu logikanya.
Untuk membuat aplikasi, anda memasukkan Training data anda tentang setiap rumah ke dalam Algoritma Machine Learning anda. algoritma itu akan mencoba untuk mencari tahu matematika apa yang perlu dilakukan untuk membuat angka-angka tsb bekerja.
jenis ini sama dengan kunci jawaban dari soal matematika tetapi dengan semua simbol aritmatika dihapus.
anda tau anda seharusnya "melakukan sesuatu" dengan angka yang ada di kiri untuk mendapatkan setiap jawaban di kanan.
Di Supervised Learning, anda membiarkan komputer anda menyelesaikan hubungan/masalah tersebut untuk anda dan begitu anda tahu matematika apa yang diperlukan untuk menyelesaikan serangkaian masalah khusus ini, anda akan bisa menyelesaikan masalah lain yang serupa.
Unsupervised Learning
Mari kembali lagi ke contoh agen properti tadi. bagaimana jika anda tidak mengetahui harga setiap rumah ? yang anda tahu hanyalah ukuran,lokasi,dan lain-lain dari setiap rumah. ternyata anda masih bisa melakukan beberapa hal keren. Ini disebut Unsupervised Learning.
Ini seperti seseorang memberikan anda daftar pada selembaran kertas dan berkata "Saya tidak tahu apa maksud dari angka ini , mungkin anda bisa mencari tahu pola,pengelompokkan atau suatu hal. semoga sukses ".
Jadi, apa yang akan anda lakukan dengan data tersebut? sebagai permulaan, anda dapat memiliki algoritma yang otomatis mengidentifikasi segmen data pasar yang berbeda dalam data anda. mungkin, anda menemukan bahwa pembeli rumah di dekat lingkungan sekitar perguruan tinggi anda sangat menyukai rumah yang kecil dengan banyak tempat tidur, tapi pembeli rumah di pinggiran kota lebih menyukai rumah dengan 3 tempat tidur dengan tanah yang luas. mengetahui tentang berbagai jenis pelanggan ini dapat membantu mengarahkan upaya pemasaran anda.
Hal keren lain yang dapat anda lakukan adalah secara otomatis mengidentifikasi rumah-rumah asing yang jauh berbeda dari yang lainnya. Mungkin rumah-rumah asing itu adalah rumah-rumah raksasa dan Anda dapat memusatkan orang-orang penjualan terbaik Anda di daerah-daerah itu karena mereka memiliki komisi yang lebih besar.
Supervised Learning adalah apa yang akan kita fokuskan untuk sisa postingan ini. tapi itu bukan berarti Unsupervised Learning kurang bermanfaat atau menarik. pada kenyataannya, unsupervised learning menjadi semakin penting karena algoritma menjadi lebih baik karena dapat digunakan tanpa harus memberi label pada data dengan jawaban yang benar..
Itu keren, tapi apakah memperkirakan sebuah rumah dapat dihitung sebagai "learning"?
Sebagai manusia, otak Anda dapat mendekati sebagian besar situasi apa pun dan belajar bagaimana menghadapi situasi itu tanpa instruksi eksplisit. Jika Anda menjual rumah untuk waktu yang lama, Anda akan secara naluriah memiliki "rasa" untuk harga yang tepat untuk rumah, cara terbaik untuk memasarkan rumah itu, jenis klien yang akan tertarik, dll. Tujuan penelitian Strong AI adalah untuk dapat meniru kemampuan ini dengan komputer
Tetapi algoritma mesin saat ini belum sebagus itu - mereka hanya bekerja ketika memfokuskan masalah yang sangat spesifik dan terbatas. Mungkin definisi yang lebih baik untuk "Learning" dalam hal ini adalah "mencari persamaan untuk memecahkan masalah tertentu berdasarkan beberapa contoh data".
sayangnya "Mesin Mencari persamaan untuk menyelesaikan masalah tertentu berdasarkan beberapa contoh data" bukan nama yang bagus. Jadi kami berakhir dengan “Machine Learning” sebagai gantinya.
Tentu saja jika Anda membaca 50 tahun ini di masa depan dan kita telah menemukan algoritme untuk Strong AI, maka seluruh pos ini semua akan tampak sedikit aneh. Mungkin anda akan berhenti membaca dan mulai mengatakan pada pelayan robotmu untuk membuatkanmu roti lapis, manusia masa depan.
Mari Kita Menulis Program
jadi, bagaimana Anda menulis program untuk memperkirakan nilai rumah seperti pada contoh di atas? Pikirkan sejenak sebelum Anda membaca lebih lanjut.
jika anda tidak tahu apa-apa tentang Machine Learning, Anda mungkin akan mencoba menuliskan beberapa aturan dasar untuk memperkirakan harga rumah seperti ini ;
def menghitung_harga_jual_rumah (jumlah_dari_tempat_tidur, sqft, ligkungan): price = 0
# di area saya, biaya rata-rata rumah $200 per sqft harga_per_sqft = 200
if lingkungan == "hipsterton":
# beberapa area menjualnya lebih mahal
harga_per_sqft = 400
elif lingkungan == "skid row":
# dan beberapa area menjualnya lebih murah
harga_per_sqft = 100
# mulai dengan perkiraan harga dasar berdasarkan seberapa besar tempat itu harga = harga_per_sqft * sqft
# sekarang sesuaikan perkiraan dengan berdasarkan tempat tidur
if jumlah_dari_tempat_tidur == 0:
# apartemen murah
harga = harga— 20000
else:
# tempat dengan banyak tempat tidur
# lebih mahal
harga = harga + (jumlah_dari_tempat_tidur * 1000)
return harga
Jika Anda bermain-main dengan ini selama berjam-jam, Anda mungkin berakhir dengan sesuatu yang bekerja seperti itu. Tetapi program Anda tidak akan pernah sempurna dan akan sulit untuk dipertahankan karena harga berubah.
Bukankah lebih baik jika komputer bisa mengetahui cara mengimplementasikan fungsi ini untuk Anda? Siapa yang peduli dengan fungsi sebenarnya selama ia mengembalikan angka yang benar:
def menghitung_harga_jual_rumah (jumlah_dari_tempat_tidur, sqft, lingkungan): harga = <computer, pls do some math for me >
return harga
Salah satu cara untuk memikirkan masalah ini adalah bahwa harganya adalah sup yang lezat dan bahan-bahannya adalah jumlah kamar tidur, squarefeet dan lingkungan. Jika Anda bisa mengetahui seberapa besar masing-masing bahan memengaruhi harga akhir, mungkin ada rasio bahan yang tepat untuk diaduk untuk menghasilkan harga akhir.
def menghitung_harga_jual_rumah (jumlah_dari_tempat_tidur, sqft, lingkungan): price = 0
# sedikit dari ini
price += jumlah_dari_tempat_tidur * .841231951398213
# dan banyak dari ini
harga += sqft * 1231.1231231
# mungkin segenggam dari ini
harga += lingkungan * 2.3242341421
# and finally, hanya sedikit garam tambahan
harga += 201.23432095
return harga
Perhatikan angka ajaib dalam huruf tebal - .841231951398213, 1231.1231231, 2.3242341421, dan 201.23432095. Ini adalah bobot kita. Jika kita bisa mengetahui bobot sempurna untuk menggunakan pekerjaan itu untuk setiap rumah, fungsi kita bisa memprediksi harga rumah!
Cara bodoh untuk mengetahui bobot terbaik :
Mulai dengan mengatur setiap bobot menjadi 1.0 :
def menghitung_harga_jual_rumah(jumlah_dari_tempat_tidur, sqft, lingkungan): harga = 0
# tambahkan sedikit ini
harga += julah_dari_tempat_tidur * 1.0
# dan lebih banyak ini
harga += sqft * 1.0
# mungkin segenggam ini
harga += lingkungan * 1.0
# and finally, hanya sedikit garam tambahan
harga += 1.0
return harga
Jalankan setiap rumah yang Anda tahu melalui fungsi Anda dan lihat seberapa jauh fungsi tersebut dengan menebak harga yang benar untuk setiap rumah:
Misalnya, jika rumah pertama benar-benar dijual seharga $ 250.000, tetapi fungsi Anda menebak itu dijual seharga $ 178.000, meleset $ 72.000 untuk satu rumah itu.
Sekarang tambahkan jumlah kuadrat meleset Anda untuk setiap rumah yang Anda miliki dalam kumpulan data Anda. Katakanlah Anda memiliki 500 penjualan rumah dalam kumpulan data Anda dan kuadrat dari seberapa banyak fungsi yang meleset untuk setiap rumah adalah total $ 86.123.373. Begitulah "salah" fungsi Anda saat ini.
Sekarang, ambil jumlah total itu dan bagi dengan 500 untuk mendapatkan rata-rata seberapa jauh yang meleset untuk setiap rumah. Sebut jumlah kesalahan rata-rata ini biaya fungsi Anda.
Jika Anda bisa mendapatkan biaya ini menjadi nol dengan bermain dengan bobot, fungsi Anda akan sempurna. Ini berarti bahwa dalam setiap kasus, fungsi Anda dengan sempurna menebak harga rumah berdasarkan data input. Jadi itulah tujuan kami - dapatkan biaya ini serendah mungkin dengan mencoba bobot yang berbeda.
Step 3 :
Ulangi Langkah 2 berulang-ulang dengan setiap kombinasi bobot yang mungkin. Kombinasi bobot apa pun yang membuat biaya paling mendekati nol adalah yang Anda gunakan. Saat Anda menemukan bobot yang berfungsi, Anda telah memecahkan masalahnya!.
Mind Blowage Time
Itu sangat sederhana, bukan? Nah pikirkan tentang apa yang baru saja Anda lakukan. Anda mengambil beberapa data, Anda memasukkannya melalui tiga langkah umum, sangat sederhana, dan Anda berakhir dengan fungsi yang dapat menebak harga setiap rumah di wilayah Anda. Awas, Zilong ( hero never Fadde)
Namun, inilah beberapa fakta lain yang akan mengejutkan Anda:
- Penelitian di banyak bidang (seperti linguistik / terjemahan) selama 40 tahun terakhir telah menunjukkan bahwa algoritma pembelajaran generik ini yang “mengaduk angka rebusan” (frasa yang baru saja saya buat) mengungguli pendekatan di mana orang sungguhan mencoba untuk membuat dengan eksplisit aturan sendiri. Pendekatan "bodoh" pembelajaran mesin pada akhirnya mengalahkan ahli manusia.
- Fungsi yang Anda gunakan benar-benar bodoh. Bahkan tidak tahu apa itu "square feet" atau "tempat tidur". Yang ia tahu adalah bahwa ia perlu mengaduk sejumlah angka-angka itu untuk mendapatkan jawaban yang benar.
- Sangat mungkin Anda tidak akan tahu mengapa serangkaian bobot tertentu akan bekerja. Jadi, Anda baru saja menulis fungsi yang tidak terlalu Anda pahami tetapi Anda dapat membuktikannya akan berhasil.
- Bayangkan bahwa alih-alih mengambil parameter seperti "sqft" dan "jumlah_dari_tempat_tidur", fungsi prediksi Anda mengambil dalam array angka. Katakanlah setiap angka mewakili kecerahan satu piksel dalam gambar yang ditangkap oleh kamera yang dipasang di atas mobil Anda. Sekarang katakanlah bahwa alih-alih mengeluarkan prediksi yang disebut "harga", fungsi menghasilkan prediksi yang disebut "degrees_to_turn_steering_wheel". Anda baru saja membuat fungsi yang dapat mengarahkan mobil Anda sendiri
Bagaimana dengan keseluruhan "Coba setiap angka" yang ada di langkah 3?
Oke, tentu saja Anda tidak bisa mencoba setiap kombinasi dari semua bobot yang mungkin untuk menemukan kombo yang paling berhasil. Itu benar-benar akan berlangsung selamanya karena Anda tidak pernah kehabisan angka untuk mencoba.
Untuk menghindarinya, matematikawan telah menemukan banyak cara pintar untuk dengan cepat menemukan nilai yang baik untuk bobot tersebut tanpa harus mencoba banyak. Ini satu cara:
pertama, tuliskan sebuah persamaan yang menggambarkan step #2 di atas :
θ yang mewakili bobot Anda saat ini. J (θ) berarti ‘biaya untuk bobot Anda saat ini '.
Persamaan ini menunjukkan betapa salahnya fungsi estimasi harga kita untuk bobot yang saat ini kami tetapkan.
Jika kita membuat grafik persamaan biaya ini untuk semua nilai yang mungkin dari bobot kita untuk jumlah_dari_tempat_tidur dan sqft, kita akan mendapatkan grafik yang mungkin terlihat seperti ini:
Dalam grafik ini, titik terendah berwarna biru adalah di mana biaya kita adalah yang terendah - dengan demikian fungsi ini adalah yang paling tidak salah. Poin tertinggi adalah di mana kita paling salah. Jadi jika kita dapat menemukan bobot yang membawa kita ke titik terendah pada grafik ini, kita akan memiliki jawaban!
Jadi kita hanya perlu menyesuaikan bobot kita sehingga kita "berjalan menuruni bukit" pada grafik ini menuju titik terendah. Jika kita terus melakukan penyesuaian kecil pada bobot yang selalu bergerak menuju titik terendah, kita akhirnya akan sampai di sana tanpa harus mencoba terlalu banyak bobot yang berbeda.
Jika Anda mengingat sesuatu dari Kalkulus ( susah ni pelajaran ), Anda mungkin ingat bahwa jika Anda mengambil turunan dari suatu fungsi, ia memberi tahu Anda kemiringan garis singgung fungsi pada titik mana pun. Dengan kata lain, ini memberitahu kita jalan mana yang menurun untuk setiap titik tertentu pada grafik kita. Kita bisa menggunakan pengetahuan itu untuk berjalan menuruni bukit.
Jadi jika kita menghitung turunan parsial dari fungsi biaya kita sehubungan dengan masing-masing bobot kita, maka kita dapat mengurangi nilai itu dari setiap bobot. Itu akan membawa kita satu langkah lebih dekat ke dasar bukit. Terus lakukan itu dan akhirnya kita akan mencapai dasar bukit dan memiliki nilai terbaik untuk bobot kita. (Jika itu tidak masuk akal, jangan khawatir dan terus membaca).
Itu adalah ringkasan tingkat tinggi dari satu cara untuk menemukan bobot terbaik untuk fungsi Anda yang disebut turunan gradien . Jangan takut untuk menggali lebih dalam jika Anda tertarik mempelajari detailnya.
Ketika Anda menggunakan Machine Learning untuk memecahkan masalah nyata, semua ini akan dilakukan untuk Anda. Tetapi masih bermanfaat untuk memiliki gagasan yang bagus tentang apa yang terjadi.
Apa lagi yang anda lewatkan ?
Algoritma tiga langkah yang saya jelaskan disebut regresi linier multivariat. Anda memperkirakan persamaan untuk garis yang sesuai dengan semua titik data rumah Anda. Maka Anda menggunakan persamaan itu untuk menebak harga penjualan rumah yang belum pernah Anda lihat sebelumnya berdasarkan di mana rumah itu akan muncul di telepon Anda. Ini adalah ide yang sangat kuat dan Anda dapat memecahkan masalah "nyata" dengannya.
Tetapi sementara pendekatan yang saya tunjukkan kepada Anda mungkin berhasil dalam kasus-kasus sederhana, itu tidak akan berhasil dalam semua kasus. Salah satu alasannya adalah karena harga rumah tidak selalu cukup sederhana untuk mengikuti garis kontinu.
Tapi untungnya ada banyak cara untuk mengatasinya. Ada banyak algoritma pembelajaran mesin lainnya yang dapat menangani data non-linear (seperti Neural Network atau SVM dengan kernel). Ada juga cara untuk menggunakan regresi linier secara lebih cerdik yang memungkinkan garis yang lebih rumit menjadi cocok. Dalam semua kasus, gagasan dasar yang sama tentang kebutuhan untuk menemukan bobot terbaik masih berlaku.
Dengan kata lain, walaupun konsep dasarnya cukup sederhana, dibutuhkan keterampilan dan pengalaman untuk menerapkan Machine Learning dan mendapatkan hasil yang bermanfaat. Tapi itu keterampilan yang bisa dipelajari oleh pengembang mana pun!
Apakah Machine Learning itu sihir?
Setelah Anda mulai melihat betapa mudahnya teknik pembelajaran mesin dapat diterapkan pada masalah yang tampaknya sangat sulit (seperti pengenalan tulisan tangan), Anda mulai mendapatkan perasaan bahwa Anda dapat menggunakan Machine Learning untuk menyelesaikan masalah apa pun dan mendapatkan jawaban selama Anda memiliki cukup data. Cukup beri makan dalam data dan saksikan komputer secara ajaib mencari persamaan yang sesuai dengan data!
Tetapi penting untuk diingat bahwa machine learning hanya berfungsi jika masalahnya benar-benar dipecahkan dengan data yang Anda miliki.
Misalnya, jika Anda membuat model yang memperkirakan harga rumah berdasarkan jenis tanaman pot di setiap rumah, itu tidak akan pernah berhasil. Tidak ada hubungan apa pun antara tanaman pot di setiap rumah dan harga jual rumah. Jadi, sekeras apa pun ia berusaha, komputer tidak akan pernah bisa menyimpulkan hubungan antara keduanya.
Anda hanya bisa memodelkan hubungan yang benar-benar ada.
Bagaimana cara belajar lebih jauh tentang Machine Learning
alam pikiran saya, masalah terbesar dengan pembelajaran mesin saat ini adalah bahwa sebagian besar hidup di dunia akademik dan kelompok penelitian komersial. Tidak banyak materi yang mudah dipahami di luar sana untuk orang-orang yang ingin mendapatkan pemahaman luas tanpa benar-benar menjadi ahli. Tapi itu menjadi sedikit lebih baik setiap hari.
Jika Anda ingin mencoba apa yang telah Anda pelajari dalam artikel ini, saya membuat kursus yang membimbing Anda melalui setiap langkah artikel ini, termasuk menulis semua kode. Cobalah!
Jika Anda ingin lebih dalam, kelas Machine Learning gratis Andrew Ng di Coursera cukup luar biasa sebagai langkah selanjutnya. Saya sangat merekomendasikannya. Itu harus dapat diakses oleh siapa saja yang memiliki Comp. Sci. gelar dan yang mengingat jumlah matematika yang sangat minim.
Selain itu, Anda dapat bermain-main dengan banyak algoritma pembelajaran mesin dengan mengunduh dan menginstal SciKit-Learn. Ini adalah kerangka kerja python yang memiliki versi "kotak hitam" dari semua algoritma standar











Komentar
Posting Komentar