Dasar Python – 5

Kali ini kita lanjutkan pembahasan dasar pemrograman python dengan membuat grafik sederhana dengan matploblib. Di python ada banyak library yang bisa digunakan untuk membuat grafik, diantaranya matplotlib dan seaborn. Matplotlib dapat membuat berbagai jenis grafik seperti scatter/plot, line, bar dll. Pada contoh berikut ini dari tutorial dari dqlab, kita akan mengolah data penduduk kemudian dibuat menjadi grafik sederhana

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

table=pd.read_csv(“https://storage.googleapis.com/dqlab-dataset/penduduk_gender_head.csv”)
table.head()

x_label=table[‘NAMA KELURAHAN’]
plt.bar(x=np.arange(len(x_label)),height=table[‘LAKI-LAKI WNI’])
plt.xticks(np.arange(len(x_label)),table[‘NAMA KELURAHAN’],rotation=30)
plt.show()

Contoh lainnya dari tabel yang sama kita akan menampilkan persebaran jumlah penduduk laki-laki di jakarta pusat, dengan kode berikut:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

table=pd.read_csv(“https://storage.googleapis.com/dqlab-dataset/penduduk_gender_head.csv”)
table.head()

x_label=table[‘NAMA KELURAHAN’]
plt.bar(x=np.arange(len(x_label)),height=table[‘LAKI-LAKI WNI’])
plt.xticks(np.arange(len(x_label)),table[‘NAMA KELURAHAN’],rotation=90)
plt.xlabel(‘Kelurahan di Jakarta Pusat’)
plt.ylabel(‘Jumlah Penduduk Laki-laki’)
plt.title(‘Persebaran Jumlah Penduduk Laki-laki di Jakarta Pusat’)

plt.show()

Semoga Bermanfaat!

Dasar Python – 1

Python adalah bahasa pemrograman yang high-level programming language maksudnya mudah untuk dibaca dan diapahami oleh manusia. Karena menggunakan perintah yang dengan bahasa manusia. Python disebut juga general-purpose programming language, karena bisa digunakan untuk berbagai macam kegunaan seperti: pengembangan aplikasi web ataupun mobile, data science, dll. Bahasa  pemrograman  Python  diciptakan  oleh  Guido  van Rossum  tahun 1991 sebagai sebuah proyek open-source.

Beberapa library python:

  1. Numpy (numerical python): library untuk pendefinisian array baik 1D, 2D, 3D atau nD, dan fungsi-fungsi untuk aljabar linier.
  2. Scipy (Scientific Python) : library untuk keperluan komputasi saintifik seperti keperluan aljabar linier, integral dan diferensil, transformasi Fourier, optimasi, interpolasi, statistik dan yang lainnya.
  3. Pandas : library untuk pengolahan data dalam bentuk tabel (seperti excel). Dapat mengolah data dari berbagai file CSV, TSV, Excel, SQL query, Google BigQuery, SAS, Stata, SPSS, dsb.
  4. Matplotlib : untuk visualisasi dari data ke dalam berbagai bentuk grafik 2D atau 3D, seperti line chart, bar chart, histogram, polar chart, error bar plot, dll
  5. Scikit-learn : untuk menghasilkan model predictive dengan menggunakan machine learning.
  6. Seaborn : library dari matplotlib yang ditujukan oleh visualisasi grafik statistik yang berwarna.

Struktur bahasa python:

  1. Statement: instruksi yang diberikan baris per baris untuk dijalankan program
  2. Variabel: deklarasi data atau informasi yang akan dipake
  3. Literals: data atau informasi yang digunakan untuk mengisi suatu variabel
  4. Operator: simbol matematika untuk mengubah nilai variabel. Bisa menggunakan satu atau lebih variabel dan literal.
  5. Reserved Words: kumpulan kata yang tidak dapat digunakan untuk variables dan literals
  6. Whitespace: spasi dan tab untuk menandai blok
  7. Comments: komentar atau teks buat jelasin codingan. Komen ini gak bakal dijalanin sm program

Contoh kode hello world di python:

print("Hello World.")

Penulisan Variabel:

  1. Nama dari sebuah variabel harus dimulai dengan huruf (a-z, A-Z) 
    atau karakter garis bawah underscore (_) dan tidak dapat dimulai dengan angka (0-9).
  2. Variabel hanya boleh mengandung karakter alfabet dan bilangan dan underscore 
    (a-z, A-Z, 0-9, _)
  3. Variabel bersifat case-sensitive yang mengartikan bahwa 
    variabel TINGGI, tinggi, dan Tinggi merujuk pada tiga variabel berbeda.

Contoh penulisan variabel

bilangan1=5
Bilangan_2=10
Frasa=”Halo Dunia”
bilangan1, Bilangan_2=5,10
salam=”Selamat Pagi”; Penutup=”Salam Sejahtera”

Comments:

untuk single line menggunakan # ; contoh:

#perintah pada baris ini tidak akan dijalankan oleh python

untuk multi line menggunakan ”’ diakhiri dengan ”’

''' perintah pada baris ini tidak akan dijalankan python 
perintah pada baris ini juga tidak dijalankan python '''

komentar alias comment ini penting untuk menjelaskan code kita

reference:

introduction to Data science with python

https://academy.dqlab.id/

Tugas Sejarah perkembangan linux

Kepada para mahasiswa peserta mata kuliah sistem operasi, silahkan anda pelajari sejarah perkembangan linux dan buat slide presentasi atau video tentang sejarah perkembangan Linux. Untuk referensi bisa dipelajari beberapa artikel berikut ini:

https://en.wikipedia.org/wiki/History_of_Linux

https://www.cs.cmu.edu/~awb/linux.history.html

http://arstechnica.com/information-technology/2015/08/how-linux-was-born-as-told-by-linus-torvalds-himself/

http://www.slate.com/blogs/business_insider/2014/06/09/linus_torvalds_creator_of_linux_programming_language_answers_interview_questions.html

http://www.slate.com/blogs/business_insider/2014/06/09/linus_torvalds_creator_of_linux_programming_language_answers_interview_questions.html

Have fun!

Latihan sistem operasi Linux essentials

Kepada para peserta mata kuliah sistem operasi kelas D3 Teknik Komputer T1, silahkan kerjakan latihan sertifikasi Linux Essentials berikut. Linux Essentials merupakan salah satu sertifikasi Linux yang diakui Internasional.

  1. File apa yang bisa kita gunakan untuk melakukan konfigurasi boot menu pada GRUB bootloader? (pilih dua)
    A. /etc/menu.lst
    B. /etc/grub.conf
    C. /boot/grub/grub.conf
    D. /boot/grub/menu.lst
  2. Perintah apa yang bisa digunakan untuk  mengganti runlvels ketika sistem sedang berjalan?
    A. runlevel
    B. chrun
    C. mode
    D. init
  3. Dibawah ini yang mana contoh dari password yang kuat?
    A. skippy
    B. DogB3rt#
    C. N0v3llD. mydogisthebest
  4. Perintah apa yang dapat digunakan untuk  shut down dan restart Linux ? (pilih dua)
    A. init 0
    B. init 6
    C. halt
    D. reboot
  5. Yang manakah yang merupakan sistem GUI pada linux?
    A. KDE
    B. fvwm
    C. sawfish
    D. X.org
  6. Sistem linux anda menggunakan  X.org sebagai X server. File Konfigurasi apakah yang digunakan untuk melakukan konfigurasi layanan ini?
    A. /etc/X11/XF86Config
    B. /etc/X11/x11.conf
    C. /etc/X11/XFree86.conf
    D. /etc/X11/xorg.conf
  7. Tools apa di Fedora Linux yang dapat digunakan untuk konfigurasi  X
    server?
    A. system-config-display
    B. xf86config
    C. YaST
    D. xf86cfg
  8. Anda baru saja mengklik sebuah iklan pada laman sebuah banks. Namun link iklan tersebut mengarahkan ke alamat url yang berbeda dengan nama domain bank tersebut. Apakah jenis serangan ini?                                                                                                 A. Tidak ada, website bekerja dengan normal
    B. Antivirus palsu                                                                                                                   C. Cookie hijacking
    D. Web site redirection.
  9. Penyerang mengubah konfigurasi DHCP Internet Service Provider untuk memberikan alamat DNS palsu. Sehingga penyerang dapat melakukan redirect rekues web ke website palsu. Apakah tipe serangan ini ?
    A. DHCP server poisoning
    B. Pharming
    C. Antivirus Palsu
    D. Phishing
  10. Anda diminta untuk membuat slide presentasi. Aplikasi apakah yang bisa digunakan di Linux untuk membuat slide presentasi?
    A. PowerPoint
    B. Writer
    C. Impress
    D. Base
  11. Anda diminta untuk melihat konten dari direktori /var/log di  Linux,
    jadi anda membuka shell dan memasukan perintah ls /Var/Log. Sebuah pesan eror menampilkan bahwa directory tersebut tidak ada. Kenapa hal ini bisa terjadi?
    A. Anda harusnya mengetikan perintah ls /var/log.
    B. Anda harusnya menggunakan merintah dir bukan ls.
    C. Anda harusnya mengetik perintah LS /VAR/LOG.
    D. Tidak ada yang salah. Ada bug di software.

Have Fun!

Latihan 5 Sistem Komputer

Kepada para mahasiswa peserta mata kuliah Sistem Komputer, hari ini kita akan belajar tentang Input Output (I/O). Untuk itu silahkan kerjakan latihan 5 siskom berikut ini:

  1. Sebutkan 10 macam perangkat Input pada komputer yang anda ketahui!
  2. Sebutkan 10 macam perangkat Output pada komputer yang anda ketahui!
  3. Sebutkan 5 macam perangkat yang dapat berfungsi sebagai input dan sebagai output pada komputer!
  4. Jelaskan apa fungsi dari DMA Controller yang terkait dengan perangkat Input dan Output!
  5. Jelaskan bagaimana tahapan perpindahan data dari perangkat Input Output menuju CPU!
  6. Jelaskan apa fungsi interupsi pada komputer!
  7. Perhatikan gambar berikut ini, Sebutkan perangkat input dan output apa yang terhubung pada masing-masing port A,B, C sampai K!
  8. Apakah perangkat sensor seperti sensor panas, sensor suhu dll termasuk perangkat input?
  9. Gunakan Device Manager dan laporkan perangkat I/O apa saja yang ada pada Laptop anda? (screenshoot)
  10. Anda diminta memasang perangkat I/O baru pada laptop anda, namun Windows tidak dapat mengenali perangkat I/O tersebut. Langkah apa yang dapat anda lakukan supaya perangkat tersebut dapat dikenali oleh Windows!

Buat Laporan dan kumpulkan ke email dengan subjek latihan 5 siskom

Have Fun!

Materi kuliah Machine Learning

Buat yang tertarik belajar tentang machine learning, berikut ini ada materi kuliah machine learning dari beberapa kampus keren:

Kuliah machine learning dari Stanford University

Kuliah tentang dari UC Berkeley Full Stack Deep Learning

Kuliah tentang deep learning dari TU munchen – Introduction to Deep Learning (I2DL)

Kuliah tentang komputer vision dari NUS

Kuliah tentag Vision dari TU Munchen Detection, Segmentation and Tracking

Kuliah tentang Deep Learning pada komputer vision dari TU Munchen

semoga bermanfaat!

Bootsrap your own latent-Grill-PaperReview

Paper Title:Bootstrap Your Own Latent; A new approach to self-supervised learning

Authors: Jean Bastian Grill, Florian Strub, Florent Altche, Corentin Tallec, Pierre H.Richemond, Elena Buchatskaya, Carl Doersch, Bernardo Avila Pires, Zhaohan Daniel Guo, Mohammed Gheshlaghi Azar, Bilal Piot, Koray Kavukcuoglu, Remi Munos, Michal Valko

Venue: Advances in Neural Information Processing Systems 33 (NeurIPS 2020)

URL: https://arxiv.org/pdf/2006.07733

Problem:

Mendapatkan image representasi yang baik adalah sebuah tantangan dalam computer vision. Banyak pendekatan training telah diajukan untuk mengatasi tantangan ini diantaranya mengandalkan pada visual pretext task, seperti metoda contrastive dengan melakukan traning dengan mengurangi distance antara representasi dari augmented views yang berbeda dari gambar yang sama (positive pair) dan meningkatkan distance antara representasi dari augmented view dari gambar berbeda (negative pair).

Namun metode ini membutuhkan treatment khusus untuk negative pairs dan performansinya tergantung pada pemilihan image augmentation

Contribution:

  1. Mengenalkan BYOL, metode SSL (self-supervised Learning) baru
  2. BYOL menghasilkan performa lebih baik dibandingkan state-of-the-art semi-supervised dan transfer benchmarks
  3. BYOL lebih kuat terhadap perubahan batch size pada set augmentasi gambar dibandingkan pendekatan contrastive

Method/solution

  1. BYOL menggunakan 2 neural network: online dan target
  2. Online network ditentukan dengan sebuah set weight θ dan dibagi menjadi tiga tahapan: sebuah encoder fθ , projector g0 dan predictor q0
  3. Target network memiliki arsitektur yang sama dengan online network, tapi memiliki weight yang berbeda
  4. Target network menyediakan target regresi untuk train online network, dan parameternya secara exponensial mengubah rata-rata dari parameter 0
  5. Dari sebuah set image D, image x->D disampling dari D, dan 2 distribusi dari augmentasi image T dan T‘
  6. BYOL menghasilkan dua augmented view v dan v’
  7. Dari augmented view pertama v, online network menghasilkan representasi y0 dan proyeksi z0
  8. Target network menghasilkan y’ dan target proyeksi z’ dari augmented view v’
  9. Kemudian dihasilkan output prediksi q0 dari z’ dan l2 normalisasi q0 dan z’
  10. Prediktor ini hanya diterapkan pada online branch, sehingga arsitektur asimetrik antara online dan target
  11. Pada setiap training step, dilakukan optimasi stokastik untuk minimasi L0
  12. Pada setiap akhir training kita hanya menyimpan f0
  13. Dibandingkan metode lain, diperhitungkan juga jumlah inference time weight hanya pada representasi akhir f0
  14. Pengujian dilakukan dengan dataset ILSVRC-2012
  15. Benchmark adalah semi-supervised pada ImageNet
  16. Diukur transfer capability dari dataset dan task lain, termasuk klasifikasi, segmentasi, deteksi objek dan estimasi depth

Main result

  1. BYOL mencapai performansi lebih baik dibandingkan metode state-of-the-art contrastive method tanpa negative pairs
  2. Pada pengujian linear evaluasi pada ImageNet BYOL mencapai akurasi top-1 74,3%
  3. Mengurangi gap dengan supervised baseline 78,9%
  4. Pada arsitektur yang lebih dalam dan lebih lebar, menghasilkan performa 79,6% (top-1) akurasi. Lebih baik dibandingkan state-of-the-art self-supervised
  5. Pada ResNet-50 BYOL mencapai akurasi 78,5% hamper menyerupai supervised baseline 78,9% pada arsitektur yang sama
  6. Mengginakan protocol semi-supervised dengan 1% dan 10% dataset ImageNet dihasilkan akurasi top-1 77,5% setelah fine-tuning diperoleh 100%
  7. Pengujian transfer ke task classification lain, BYOL menghasilkan performa lebih baik dibandingkan SimCLR pada semua benchmark dan Supervised-IN pada 7 dari 12 benchmark
  8. Representasi BYOL bisa ditransfer ke small images seperti COFAR, landscape (SUN397) , VOC 2007 dan teksture (DTD)
  9. Transfer ke task lain pada vision seperti semantic segmentasi, object detection dan depth estimasi, BYOL lebih baik dibandingkan baseline

Limitation:

  1. Fokus pada vision, belum diuji pada audio, video, text dl
  2. membutuhkan kemampuan dan resource besar untuk proses augmentasi untuk implementasi pada modal lainnya

Latihan 1 Sistem Operasi

Kepada para peserta mata kuliah sistem operasi silahkan kerjakan latihan berikut:

  1. Mengapa komputer butuh sistem operasi ?
  2. Sebutkan ciri OS yang baik ?
  3. Mengapa komputer butuh sistem operasi ?
  4. Sebutkan ciri OS yang baik ?
  5. Sebutkan 5 fungsi dasar OS?
  6. Ceritakan tentang evolusi operating systems ?
  7. Dalam OS ada yang disebut proses, Jelaskan apa artinya ?
  8. Apa yang dimaksud dengan manajemen proses pada OS ?
  9. Jelaskan tentang Kernel? apa fungsinya ?
  10. Sebutkan 5 fungsi dasar OS?
  11. Ceritakan tentang evolusi operating systems ?
  12. Dalam OS ada yang disebut proses, Jelaskan apa artinya ?
  13. Apa yang dimaksud dengan manajemen proses pada OS ?
  14. Jelaskan tentang Kernel? apa fungsinya ?

Have fun!

ACM A.M Turing Award Lecture 2018 – Digital Learning Revolution

Saya baru lihat kuliah Geoffrey Hinton pada acara penganugeraahn A.M Turing award lecture 2018 dengan judul deep learning revolution. 

2 paradigma AI sejak tahun 1950:

  • Pendekatan Logik: menggunakan simbolic rules untuk melakukan manipulasi symbolic expressions; masalah utamanya reasoning; representasi yg digunakan symbolic expression; programmer meminta komputer;
  • pendekatan terinspirasi dari biologi: neural network: masalah yang dibahas learning dan persepsi; representasi dengan vektor neural

Vektor belajar dari data, dan mempengaruhi vektor neuron lainnya.

intelligent design: manipulasi symbolic representasi untuk menjalankan tugas dan memprogram komputer untuk melakukan itu

Learning, memberi input banyak contoh serta menentukan output yang diinginkan, meminta komputer belajar untuk memetakan input dengan output menggunakan prosedur learning yang general. Hinton memberi contoh dengan input sebuah gambar, komputer diminta menjelaskan apa isi gambar tersebut. Pendekatan intelligent design tidak berhasil memberikan deskripsi gambar, namun neural net bisa menjelaskan gambar tersebut dengan pendekatan learning. Neural Net yang besar dengan jutaan weight dan banyak layer non-linear neuron mampu menghitung perhitungan yang kompleks. Tapi mampukah neural network belajar hanya dari random weights dan mengambil informasi hanya dari data training, tanpa label dari manusia. Turing dan selfridge pernah mengusulkan bahwa reinforcement learning (RL) bisa melakukan ini. RL menggunakan reward & punishment untuk mengupdate weights dari koneksi neural net. Namun menurut hinton tidak efficient. 

  • 1960 rosenblatt mengusulkan metoda learning sederhana yang dapat menghitung weight dari feature untuk melakukan klasifikasi input, namun perceptron tidak dapat menentukan feature
  • 1969 Minsky dan papert menyatakan perceptron memiliki keterbatasan, dan memiliki ide menggunakan deeper network
  • 1970 neural net winter
  • 1980 an muncul back propagation, berhasil membuat neural net merancang featurenya dan memiliki beberapa layer feature. Back propagation bisa mengconvert kata menjadi vektor, dan memprediksi kata berikutnya. Berhasil di speech recognition, dan beberapa bentuk shape recognition.  Yalican network membaca tulisan tangan

artificial neuron –> rectified linear neuron; output dengan jumlah input yang sama, merubah nilai weight. Klo gak ada cycle disebut feed-forward neural net. Merubah weight–>> merubah feature yang dipelajari net. tambah beberapa hidden layer

Ada 2 learning algoritm

  • supervised:  memberi vektor input dan memberikan output yang benar.  merubah weights untuk mengurangi diskrepansi antara output saat ini dan yang seharusnya
  • unsupervised hanya memberi input, merubah weight pada hidden layer supaya sistem dapat melakukan rekonstruksi input lebih baik 

Masih banyak lagi catatan yang menarik dari kuliah Hinton

video lengkapnya bisa dilihat disini

GAN – Generative Adversarial Nets

Saya baru baca tentang GAN – Generative Adversarial Nets. GAN ini framework yang dikembangkan oleh Ian Goodfellow, Yoshua Bengio dkk. Selama ini teknik Machine learning (ML) digunakan untuk melakukan klasifikasi atau mengenali gambar. Bisa gak teknik ML digunakan untuk membuat gambar baru? Ide ini yang dipikirkan Ian Goodfellow. 

Jadi dia menggabungkan dua neural network untuk membuat sebuah data baru.  Network pertama disebut generator, menggenerate data baru. Caranya adalah kebalikan dari proses klasifikasi data. Jadi diberikan sebuah output, mesin berusaha meng-generate input yang bisa menghasilkan output yang sesuai.

Network yang kedua disebut sebagai discriminator. Discriminator ini adalah sebuah Deep Neural Network yang berfungsi sebagai classifier.  Tugasnya melakukan penilaian terhadap hasil dari generator tadi, misalnya nilainya diberi skala 0-1. 1 diberikan bila gambar yang dihasilkan generator sesuai dengan yang diinginkan. Misalnya kita mau membuat gambar orang. Berarti matanya harus dua, mulutnya satu, telinganya dua, proporsinya seimbang, dsb. 0 diberikan bila gambar yang diberikan generator tidak sesuai dengan yang diinginkan, misalnya matanya satu, mulutnya dua dll. 

Kalo nilai yang dihasilkan discriminator kecil, maka generator akan memperbaiki lagi datanya, untuk kemudian dinilai lagi oleh discriminator. Begitu terus berulang, sampai nilainya tinggi, maksudnya gambarnya yang dihasilkan generator sesuai dengan yang diharapkan. 

Contohnya dari foto2 artis, GAN bisa membuat foto orang yang berbeda/baru. Contohnya bisa dilihat pada video berikut:

Beberapa riset yang menggunakan GAN misalnya oleh NVIDIA, untuk melakukan koreksi pada gambar. Ada juga yang digunakan untuk membuat desain interior secara acak. Selain itu membuat komposisi musik. Ada juga riset yang menggunakan GAN untuk membuat data train untuk self driving car. Contoh lainnya GAN digunakan untuk menggenerate data training medis.

Kelemahan GAN, dia butuh data yang banyak. Selain itu GAN hanya melakukan kombinasi dan tidak bisa menemukan sesuatu yang benar-benar baru. Agak rumit proses optimasi generator dan discriminatornya.

Namun menurut Good fellow ada tantangan juga penyalahgunaan teknik ini untuk kejahatan, membuat deepfake, mengacaukan self-driving car, dll. Paper Ian Godfellow bisa dilihat pada link berikut: https://arxiv.org/pdf/1406.2661.pdf

riset NVIDIA:

interview Ian Goodfellow dengan MIT: https://www.technologyreview.com/s/610253/the-ganfather-the-man-whos-given-machines-the-gift-of-imagination/

reference: 

What is GAN, the AI technique that makes computers creative?

%d blogger menyukai ini: