Banyak referensi yang bisa kita gunakan mengenai deep learning,
terutama dari berbagai perusahaan besar dunia sekelas google,
facebook, baidu, microsoft, amazon, nvidia dan lain-lain. Apa
itu Deep Learning? seberapa penting atau seberapa bernilai deep
learning? terutama untuk business, siapa tokoh yang banyak melakukan
riset atau membangun deep learning? Dan kenapa saya dan teman-teman
ingin membangun engine sendiri untuk machine learning? bukankah
banyak framework, library dan services (terutama seperti azure dan
aws) untuk machine learning?
Pada hari ini teknologi intelijensi buatan cukup menjadi sorotan
beberapa pelaku bisnis dunia, terutama bisnis teknologi, bahkan dunia
politik. Seperti di USA Obama yang memilih Chief Data Scientist
pertama untuk Amerika.
Kalau kata wikipedia :
Deep learning (deep machine
learning, or deep structured learning, or hierarchical learning, or
sometimes DL) is a branch of machine learning based on a set of
algorithms that attempt to model high-level abstractions in data by
using model architectures, with complex structures or otherwise,
composed of multiple non-linear transformations
Deep learning sendiri merupakan tumpukan atau stack dari beberapa
algoritma atau metode, sehingga berkembang berbagai pendekatan deep
learning dengan berbagai arsitektur. Beberapa tujuan dari tumpukan
metode ini adalah feature extraction, juga memanfaatkan seluruh
resource seoptimal mungkin. Resource apa? data, sebagian besar data
di dunia ini tidak berlabel (terkategorisasi), deep learning biasanya
merupakan tumpukan stack algoritma unsupervised dan supervised
learning sehingga dapat memanfaatkan data yang berlabel maupun tidak
berlabel. Dengan pemanfaatan informasi yang lebih optimal tentunya
akan meningkatkan performa model yang dihasilkan.
Yang menarik adalah analogi Andrew .Ng, Chief Scientist Baidu
mengenai apa yang bisa dilakukan dengan data yang lebih banyak dan
arsitektur yang lebih besar? dengan menggunakan analogi membangun
roket.
Menurut Andrew Ng, 50% pekerjaannya dihabiskan untuk melakukan
modifikasi arsitektur dari network yang digunakan, dan dia memberikan
istilah dalam proses pencarian arsitektur yang cocok adalah Black
Magic.
Di atas kita dapat melihat pendekatan yang sering digunakan untuk
mengimplementasikan deep learning adalah graphical methods atau
multilayer representation, atau multilayer graphical model seperti
belief network, neural network, hidden markov, dan lain-lain. Pada
dasarnya metode-metode tersebut seperti halnya machine learning biasa
merupakan metode statistik dan stokastik yang sebenarnya sudah banyak
dikenal di dunia matematika terutama statistik.
Otak manusia dapat melakukan distributed representation. Ide nya pun
dari sistem kerja otak manusia, contohnya seperti gambar dibawah ini,
manusia menerima input dari indra pengelihatan mata, lalu di salurkan
ke cortex di otak manusia, lalu disana akan terdapat beberapa bagian
otak yang akan melakukan pengolahan informasi dan estraksi.
Dalam slide Professor Hugo Larochelle, mata menerima input lalu
diteruskan ke beberapa bagian otak yang setiap bagiannya melakukan
estraksi seperti pada bagian LGN dia hanya melihat sebagai berbagai
susunan bagian informasi kecil-kecil (seperti biner di komputer),
lalu pada bagian V1 informasi itu di estrak kembali menjadi beberapa
bentuk sederhana, lalu pada bagian selanjutnya V2 informasi di estrak
menjadi bentuk lebih tinggi lagi beberapa bentuk baru dari group
informasi sebelumnya, lalu pada bagian AIT di estrak kembali menjadi
beberapa bagian yang lebih tinggi lagi seperti bentuk wajah dan
lain-lain, setelah itu baru dilakukan pengambilan keputusan dibagian
otak lain seperti pada bagian PFC, lalu setelah itu baru otak kita
memberikan respon tertentu yang mungkin berupa motorik.
Ide pada neuroscience tersebut dicoba diduplikasi pada area machine
learning yang mana memiliki tujuan yang relatif sama atau dengan kata
lain melakukan reverse engineering pada sistem berfikir manusia,
seperti pada buku AI modern approach Russel, mengenai AI yang
bertujuan membuat mesin salah satunya think like humans and think
rationally.
Metode yang saya pikir sangat sesuai, dan beberapa pakar atau
professor dalam area machine learning terutama dalam deep network
adalah multilayer ataupun multilayer graphocal model. Neural network
salah satunya, dengan melihat ide diatas, maka dapat dibangun menjadi
Deep Neural Network dengan tujuan meniru cara kerja dari otak
manusia.
Neural Network dalam Deep network dibuat memiliki lebih dari satu
hidden layer, namun yang jadi permasalahan adalah ketika kita membuat
lebih dari satu hidden layer. Kita ketahui fungsi yang berlaku dalam
metode neural network backpropagation misalkan seperti ini :
masalah yang muncul adalah nilai setiap gradient yang akan muncul
akan semakin kecil (mendekati nol) untuk setiap hidden layer yang
mendekati output layer, sehingga akurasi bukannya semakin baik, malah
semakin buruk.
Lalu bagaimana penyelesaiannya? untuk kasus Deep Network dapat dengan
manambahkan algoritma atau metode yang melakukan inisialisasi pada
saat awal pembangunan network sebelum melakukan tuning . Salah satu
metode yang dapat digunakan dan menurut saya paling mudah adalah
dengan menggunakan autoencoder, mungkin akan saya jelaskan di tulisan
berikutnya (kalau lagi gak males) hahaha. Autoencoder ini fungsinya
sebenarnya adalah mengekstrak informasi relatif mirip seperti PCA
yang dapat mengurangi dimensi dari data pada dataset.
Autoencoder konsepnya hanya meng-encode input yang ada atau dikompres
atau meng-estrak fitur mana saja yang memang penting, lalu hasilnya
adalah informasi yang ada pada hidden layer, lalu dicoba kembali di
decode, dan dilihat apakah hasilnya dengan kondisi network saat itu
sudah sesuai dengan hasil seharunya (kembali seperti semula sebelum
di encode). Sehingga inferencesnya merupakan network beserta weight
dari setiap synapsis atau edge yang menghubungkan setiap unit atau
perceptron.
Dengan kata lain informasi yang nanti ada pada hidden layer atau
nilai pada setiap unit pada hidden layer tersebut tersebut dapat
mewakili input layer atau merupakan hasil ekstrak dari informasi
yang ada pada input layer, dan synapsis weight yang sudah sesuai
tersebut dipindahkan ke network pada deep neural network, sebagai
inisialisasi awal antara synapsis input layer dan hidden layer
pertama. Selanjutnya eksekusi kembali autoencoder antara hidden layer
1 dan hidden layar 2, begitu seterusnya hingga hidden layer ke n-1
dan hidden layer ke n.
Sehingga gradient yang nanti didapat ketika akan memulai tuning,
tidak akan selalu mengecil mendekati nol.
Mungkin teknis sederhananya seperti itu untuk Deep Network, dan
sebenarnya ini merupakan algoritma yang cukup sederhana. Ada beberapa
algoritma lainnya seperti deep autoencoder, restricted boltzmann
machine (rbm), stacked rbm, deep belief network dan lain-lain.
Deep learning sendiri sering disandingan dengan big data, yaitu
menganalisis big data dengan 3V nya dengan menggunakan deep learning.
Sehingga dengan melihat kompleksitas dari metode tersebut dibuthkan
teknologi penopang seperti hardware dan pendekatan implementasi
parallel ataupun cluster baik dari sisi implementasi algoritma
ataupun data management yang cukup cepat, sehingga dapat menekan
kompleksitas waktu yang muncul dalam deep learning.
Terdapat berbagai pendekatan yang dilakukan dari mulai parallel
programming dengan menggunakan multi core biasa, GPU, hingga message
passing inteface misalkan memanfaatkan lebih dari satu mesin. Seperti
yang dilakukan google, baidu, microsoft, bahkan nvidia yang
mengeluarkan Deep Learning GPU Training System (DIGITS) .
Kenapa saya dan teman-teman ingin membuat engine untuk deep learning
atau mungkin minimal machine leanring biasa. Sebelumnya saya pernah
bekerja untuk membuat suatu machine learning untuk kasus fraud
detection system, tentu dengan tujuan dapat diimplementasikan di
production. Ternyata dalam prosesnya yang paling sulit adalah
memindahkan algoritma yang sudah diimplementasikan ke dalam sistem
production, kenapa? karena perbedaan kebutuhan di lingkungan
production. Machine learning harus dapat melakukan klasifikasi
cepat, reliable, dan dapat berkala memperbaiki model yang ada atau
scheduling, kalau melihat beberapa library yang sudah ada terutama
weka atau scikit learning, saya merasa tidak puas. Weka ketika
melakukan pemanggilan kembali model yang telah disimpan membutuhkan
seluruh informasi sebelumnya yang membentuk model tersebut. Scikit
learning membutuhkan seluruh load data untuk membentuk model
(training), sedangkan banyangkan dimasa yang akan datang berapa
banyak data yang harus diolah? dan weka lebih keren lagi, model yang
dihasilkan misalkan sekitar 84 mb, bayangkan jika kita membuat
service atau API untuk melakukan klasifikasi dan membutuhkan model
tersebut, untuk membuat 1 object model membutuhkan 84 mb * ukuran
informasi (dataset) dalam mb untuk 1 request? bayangkan jika datang
1000 request?
Kami berfikiri solusinya kita membuat sendiri enginenya atau kita
menggunakan service yang sudah ada untuk tujuan tetentu (machine
learning dengan fungsi spesifik, seperti fraud detectin syste,
financial analytics, social network analysis dan lain2).
Referensi :
Prof. Tom Mitchel, Professor di Carniege Mellon University, buku
pertama saya mengenai machine learning, banyak jadi referensi di
berbagai universitas.
Lalu Prof. Andrew Ng, professor stanford yang merupakan CEO
Coursera dan Chief Scientist BAIDU, dan merupakan orang dibalik
google brain sebelumnya,
Prof. Geoffrey Hinton merupakan Distinguished Researcher google
dan juga Distinguished Emeritus Professor di University of Toronto
beliau merupakan figur penting dalam pergerakan deep learning.
Hugo Larochelle, merupakan professor di Université de Sherbrooke
Jeff Dean, merupakan computer scientist dan Google Senior Fellow
pada group Systems and Infrastructure.
https://www.initialboard.com/perbedaan-al-marchine-learning-dan-deep-learning
https://situkangsayur.wordpress.com/2015/07/27/deep-learning/
Apa itu Deep Learning ??
Banyak referensi yang bisa kita gunakan mengenai deep learning,
terutama dari berbagai perusahaan besar dunia sekelas google,
facebook, baidu, microsoft, amazon, nvidia dan lain-lain. Apa
itu Deep Learning? seberapa penting atau seberapa bernilai deep
learning? terutama untuk business, siapa tokoh yang banyak melakukan
riset atau membangun deep learning? Dan kenapa saya dan teman-teman
ingin membangun engine sendiri untuk machine learning? bukankah
banyak framework, library dan services (terutama seperti azure dan
aws) untuk machine learning?
Pada hari ini teknologi intelijensi buatan cukup menjadi sorotan
beberapa pelaku bisnis dunia, terutama bisnis teknologi, bahkan dunia
politik. Seperti di USA Obama yang memilih Chief Data Scientist
pertama untuk Amerika.
Kalau kata wikipedia :
Deep learning (deep machine
learning, or deep structured learning, or hierarchical learning, or
sometimes DL) is a branch of machine learning based on a set of
algorithms that attempt to model high-level abstractions in data by
using model architectures, with complex structures or otherwise,
composed of multiple non-linear transformations
Deep learning sendiri merupakan tumpukan atau stack dari beberapa
algoritma atau metode, sehingga berkembang berbagai pendekatan deep
learning dengan berbagai arsitektur. Beberapa tujuan dari tumpukan
metode ini adalah feature extraction, juga memanfaatkan seluruh
resource seoptimal mungkin. Resource apa? data, sebagian besar data
di dunia ini tidak berlabel (terkategorisasi), deep learning biasanya
merupakan tumpukan stack algoritma unsupervised dan supervised
learning sehingga dapat memanfaatkan data yang berlabel maupun tidak
berlabel. Dengan pemanfaatan informasi yang lebih optimal tentunya
akan meningkatkan performa model yang dihasilkan.
Yang menarik adalah analogi Andrew .Ng, Chief Scientist Baidu
mengenai apa yang bisa dilakukan dengan data yang lebih banyak dan
arsitektur yang lebih besar? dengan menggunakan analogi membangun
roket.
Menurut Andrew Ng, 50% pekerjaannya dihabiskan untuk melakukan
modifikasi arsitektur dari network yang digunakan, dan dia memberikan
istilah dalam proses pencarian arsitektur yang cocok adalah Black
Magic.
Di atas kita dapat melihat pendekatan yang sering digunakan untuk
mengimplementasikan deep learning adalah graphical methods atau
multilayer representation, atau multilayer graphical model seperti
belief network, neural network, hidden markov, dan lain-lain. Pada
dasarnya metode-metode tersebut seperti halnya machine learning biasa
merupakan metode statistik dan stokastik yang sebenarnya sudah banyak
dikenal di dunia matematika terutama statistik.
Otak manusia dapat melakukan distributed representation. Ide nya pun
dari sistem kerja otak manusia, contohnya seperti gambar dibawah ini,
manusia menerima input dari indra pengelihatan mata, lalu di salurkan
ke cortex di otak manusia, lalu disana akan terdapat beberapa bagian
otak yang akan melakukan pengolahan informasi dan estraksi.
Dalam slide Professor Hugo Larochelle, mata menerima input lalu
diteruskan ke beberapa bagian otak yang setiap bagiannya melakukan
estraksi seperti pada bagian LGN dia hanya melihat sebagai berbagai
susunan bagian informasi kecil-kecil (seperti biner di komputer),
lalu pada bagian V1 informasi itu di estrak kembali menjadi beberapa
bentuk sederhana, lalu pada bagian selanjutnya V2 informasi di estrak
menjadi bentuk lebih tinggi lagi beberapa bentuk baru dari group
informasi sebelumnya, lalu pada bagian AIT di estrak kembali menjadi
beberapa bagian yang lebih tinggi lagi seperti bentuk wajah dan
lain-lain, setelah itu baru dilakukan pengambilan keputusan dibagian
otak lain seperti pada bagian PFC, lalu setelah itu baru otak kita
memberikan respon tertentu yang mungkin berupa motorik.
Ide pada neuroscience tersebut dicoba diduplikasi pada area machine
learning yang mana memiliki tujuan yang relatif sama atau dengan kata
lain melakukan reverse engineering pada sistem berfikir manusia,
seperti pada buku AI modern approach Russel, mengenai AI yang
bertujuan membuat mesin salah satunya think like humans and think
rationally.
Metode yang saya pikir sangat sesuai, dan beberapa pakar atau
professor dalam area machine learning terutama dalam deep network
adalah multilayer ataupun multilayer graphocal model. Neural network
salah satunya, dengan melihat ide diatas, maka dapat dibangun menjadi
Deep Neural Network dengan tujuan meniru cara kerja dari otak
manusia.
Neural Network dalam Deep network dibuat memiliki lebih dari satu
hidden layer, namun yang jadi permasalahan adalah ketika kita membuat
lebih dari satu hidden layer. Kita ketahui fungsi yang berlaku dalam
metode neural network backpropagation misalkan seperti ini :
masalah yang muncul adalah nilai setiap gradient yang akan muncul
akan semakin kecil (mendekati nol) untuk setiap hidden layer yang
mendekati output layer, sehingga akurasi bukannya semakin baik, malah
semakin buruk.
Lalu bagaimana penyelesaiannya? untuk kasus Deep Network dapat dengan
manambahkan algoritma atau metode yang melakukan inisialisasi pada
saat awal pembangunan network sebelum melakukan tuning . Salah satu
metode yang dapat digunakan dan menurut saya paling mudah adalah
dengan menggunakan autoencoder, mungkin akan saya jelaskan di tulisan
berikutnya (kalau lagi gak males) hahaha. Autoencoder ini fungsinya
sebenarnya adalah mengekstrak informasi relatif mirip seperti PCA
yang dapat mengurangi dimensi dari data pada dataset.
Autoencoder konsepnya hanya meng-encode input yang ada atau dikompres
atau meng-estrak fitur mana saja yang memang penting, lalu hasilnya
adalah informasi yang ada pada hidden layer, lalu dicoba kembali di
decode, dan dilihat apakah hasilnya dengan kondisi network saat itu
sudah sesuai dengan hasil seharunya (kembali seperti semula sebelum
di encode). Sehingga inferencesnya merupakan network beserta weight
dari setiap synapsis atau edge yang menghubungkan setiap unit atau
perceptron.
Dengan kata lain informasi yang nanti ada pada hidden layer atau
nilai pada setiap unit pada hidden layer tersebut tersebut dapat
mewakili input layer atau merupakan hasil ekstrak dari informasi
yang ada pada input layer, dan synapsis weight yang sudah sesuai
tersebut dipindahkan ke network pada deep neural network, sebagai
inisialisasi awal antara synapsis input layer dan hidden layer
pertama. Selanjutnya eksekusi kembali autoencoder antara hidden layer
1 dan hidden layar 2, begitu seterusnya hingga hidden layer ke n-1
dan hidden layer ke n.
Sehingga gradient yang nanti didapat ketika akan memulai tuning,
tidak akan selalu mengecil mendekati nol.
Mungkin teknis sederhananya seperti itu untuk Deep Network, dan
sebenarnya ini merupakan algoritma yang cukup sederhana. Ada beberapa
algoritma lainnya seperti deep autoencoder, restricted boltzmann
machine (rbm), stacked rbm, deep belief network dan lain-lain.
Deep learning sendiri sering disandingan dengan big data, yaitu
menganalisis big data dengan 3V nya dengan menggunakan deep learning.
Sehingga dengan melihat kompleksitas dari metode tersebut dibuthkan
teknologi penopang seperti hardware dan pendekatan implementasi
parallel ataupun cluster baik dari sisi implementasi algoritma
ataupun data management yang cukup cepat, sehingga dapat menekan
kompleksitas waktu yang muncul dalam deep learning.
Terdapat berbagai pendekatan yang dilakukan dari mulai parallel
programming dengan menggunakan multi core biasa, GPU, hingga message
passing inteface misalkan memanfaatkan lebih dari satu mesin. Seperti
yang dilakukan google, baidu, microsoft, bahkan nvidia yang
mengeluarkan Deep Learning GPU Training System (DIGITS) .
Kenapa saya dan teman-teman ingin membuat engine untuk deep learning
atau mungkin minimal machine leanring biasa. Sebelumnya saya pernah
bekerja untuk membuat suatu machine learning untuk kasus fraud
detection system, tentu dengan tujuan dapat diimplementasikan di
production. Ternyata dalam prosesnya yang paling sulit adalah
memindahkan algoritma yang sudah diimplementasikan ke dalam sistem
production, kenapa? karena perbedaan kebutuhan di lingkungan
production. Machine learning harus dapat melakukan klasifikasi
cepat, reliable, dan dapat berkala memperbaiki model yang ada atau
scheduling, kalau melihat beberapa library yang sudah ada terutama
weka atau scikit learning, saya merasa tidak puas. Weka ketika
melakukan pemanggilan kembali model yang telah disimpan membutuhkan
seluruh informasi sebelumnya yang membentuk model tersebut. Scikit
learning membutuhkan seluruh load data untuk membentuk model
(training), sedangkan banyangkan dimasa yang akan datang berapa
banyak data yang harus diolah? dan weka lebih keren lagi, model yang
dihasilkan misalkan sekitar 84 mb, bayangkan jika kita membuat
service atau API untuk melakukan klasifikasi dan membutuhkan model
tersebut, untuk membuat 1 object model membutuhkan 84 mb * ukuran
informasi (dataset) dalam mb untuk 1 request? bayangkan jika datang
1000 request?
Kami berfikiri solusinya kita membuat sendiri enginenya atau kita
menggunakan service yang sudah ada untuk tujuan tetentu (machine
learning dengan fungsi spesifik, seperti fraud detectin syste,
financial analytics, social network analysis dan lain2).
Referensi :
Prof. Tom Mitchel, Professor di Carniege Mellon University, buku
pertama saya mengenai machine learning, banyak jadi referensi di
berbagai universitas.
Lalu Prof. Andrew Ng, professor stanford yang merupakan CEO
Coursera dan Chief Scientist BAIDU, dan merupakan orang dibalik
google brain sebelumnya,
Prof. Geoffrey Hinton merupakan Distinguished Researcher google
dan juga Distinguished Emeritus Professor di University of Toronto
beliau merupakan figur penting dalam pergerakan deep learning.
Hugo Larochelle, merupakan professor di Université de Sherbrooke
Jeff Dean, merupakan computer scientist dan Google Senior Fellow
pada group Systems and Infrastructure.
https://www.initialboard.com/perbedaan-al-marchine-learning-dan-deep-learning
https://situkangsayur.wordpress.com/2015/07/27/deep-learning/
0 Comments