<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Terminal</title>
    <link>https://techy.faddilafarras.me/</link>
    <description>Recent content on Terminal</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 04 Jan 2023 21:33:37 +0700</lastBuildDate><atom:link href="https://techy.faddilafarras.me/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Google Assistant</title>
      <link>https://techy.faddilafarras.me/posts/google-assistant/</link>
      <pubDate>Wed, 04 Jan 2023 21:33:37 +0700</pubDate>
      
      <guid>https://techy.faddilafarras.me/posts/google-assistant/</guid>
      <description>(Reposted from here with some changes.)
If we aren’t restricted from roaming outside freely due to this pandemic situation, I would have spent my time with the Google Smart Speaker in the secretary room of my student organization in campus, chilling with my friend together while asking the smart speaker to play us some music. This smart speaker is actually a speaker with a ‘brain’ planted inside. Hence, it is smart.</description>
      <content>&lt;p&gt;(Reposted from &lt;a href=&#34;https://medium.com/@faddilafarras/google-assistant-9829563b03ba&#34;&gt;here&lt;/a&gt; with some changes.)&lt;/p&gt;
&lt;p&gt;If we aren’t restricted from roaming outside freely due to this pandemic situation, I would have spent my time with the Google Smart Speaker in the secretary room of my student organization in campus, chilling with my friend together while asking the smart speaker to play us some music. This smart speaker is actually a speaker with a ‘brain’ planted inside. Hence, it is smart. That’s why I could ask it to do something, like playing music or informing the weather forecast for today. The ‘brain’ here, is called Google Assistant, and is an implementation of something you would have definitely heard of: Machine Learning.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/smart-speaker.webp&#34; alt=&#34;Smart Speaker&#34; title=&#34;Smart Speaker&#34;&gt;&lt;/p&gt;
&lt;p&gt;Machine Learning’s usages and performances are expanding in a really great acceleration. Something which we couldn’t possibly imagine one year ago might have been possible to be done today by utilizing some kind of learning algorithm. I am always amazed by the new technologies this field has been producing, including this product, Google Assistant, which emerges from a branch of Machine Learning, which is NLP (Natural Language Processing). The core idea of NLP is to translate what we are saying from our natural language (which sometimes is ambiguous) into the language that can be understood by the machine. The machine must have some kind of memory that stores the context of the conversation, otherwise it cannot conduct a conversation naturally with us.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/google-assistant-chat.webp&#34; alt=&#34;Google Assistant Chat&#34; title=&#34;An example of a conversation with Google Assistant. The source is from Google itself though, and as a wise old man once said, never trust the ads until we see the product by ourselves.&#34;&gt;&lt;/p&gt;
&lt;p&gt;There is one additional step before doing the translation task. It must convert our voice into text. The voice, as we all know, is actually a wave that has some properties such as amplitude and frequency. Just like a standard voice recording device, the speaker can just convert our voice from analog wave into the digital one. This digital wave is then converted into token of words (which hopefully will be the same with what we say to the speaker), by using again a learning algorithm. This branch of Machine Learning is called Speech Processing. It has different purpose with the NLP we discussed before. A Speech Processing model might not need a memory to have context, but it must learn how a series of wave is translated into a word, or maybe a fraction of wave is translated into a phoneme.&lt;/p&gt;
&lt;p&gt;So, a smart speaker is basically a combination of two Machine Learning models. Imagine having it answer us quickly, just barely 1 second after we ask. Other than the two processes above, it might also need to get some data from calendar (if we are asking for a schedule), web (if we are asking for news), or even call an external API. This is a complex process completed in short amount of time, and I think it’s really cool to have experienced this kind of cutting-edge technology.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Kalman Filter</title>
      <link>https://techy.faddilafarras.me/posts/kalman-filter/</link>
      <pubDate>Wed, 04 Jan 2023 21:09:14 +0700</pubDate>
      
      <guid>https://techy.faddilafarras.me/posts/kalman-filter/</guid>
      <description>(Reposted from here with some changes)
Kalman Filter merupakan sebuah teknik yang digunakan untuk mengestimasi nilai sebuah parameter atau state dalam suatu waktu tertentu. Variabel waktu di sini merupakan sebuah variabel yang diskrit, yakni jarak antar satu titik waktu dengan titik yang lainnya adalah konstan, dimulai dari 0, 1, 2, … dan seterusnya.
Pada setiap satuan waktu terdapat sebuah state yang nilainya akan diestimasi. State sendiri merupakan kumpulan variabel-variabel yang menentukan kondisi dari sistem yang diukur dalam suatu waktu tertentu.</description>
      <content>&lt;p&gt;(Reposted from &lt;a href=&#34;https://medium.com/@faddilafarras/kalman-filter-9b186196cffe&#34;&gt;here&lt;/a&gt; with some changes)&lt;/p&gt;
&lt;p&gt;Kalman Filter merupakan sebuah teknik yang digunakan untuk mengestimasi nilai sebuah parameter atau state dalam suatu waktu tertentu. Variabel waktu di sini merupakan sebuah variabel yang diskrit, yakni jarak antar satu titik waktu dengan titik yang lainnya adalah konstan, dimulai dari 0, 1, 2, … dan seterusnya.&lt;/p&gt;
&lt;p&gt;Pada setiap satuan waktu terdapat sebuah state yang nilainya akan diestimasi. State sendiri merupakan kumpulan variabel-variabel yang menentukan kondisi dari sistem yang diukur dalam suatu waktu tertentu. Sebagai contoh, jika kita ingin mengestimasi ketinggian dari sebuah air dalam sebuah bak berbentuk persegi panjang dalam waktu tertentu, kita bisa membuat sebuah state S yang isinya merupakan kumpulan dari ketinggian air pada keempat titik sudut bak tersebut, lalu mengestimasi ketinggian air bak sebagai rata-rata dari keempat nilai pada state nya tersebut. Pada setiap waktu, kita dapat mengukur nilai state ini secara langsung, dan hasil pengukurannya tersebut disebut sebagai measured value.&lt;/p&gt;
&lt;p&gt;Akan tetapi, walaupun pengukuran berhasil dilakukan dan nilai state pada tiap satuan waktu dapat diperoleh, nilai yang dihasilkan ini cukup noisy, karena nilai dari setiap komponen state berubah-ubah tiap saat (sistemnya dinamis), dan terdapat ketidakpastian dalam pengukuran. Teknik Kalman Filter digunakan untuk memperoleh taksiran nilai state tersebut dengan meminimalisir noise (faktor ketidakpastian), atau secara formal meminimalisir nilai ekspektasi dari squared-error (atau Mean Square Error, yaitu sebuah metrik yang umum digunakan sebagai error function untuk mengukur akurasi model) dengan memanfaatkan data-data yang diperoleh dari waktu sebelumnya.&lt;/p&gt;
&lt;p&gt;Kalman Filter cukup powerful karena dapat mengestimasi nilai state dari past, present, dan future, tanpa perlu mengetahui cara sistem bekerja, serta karena algoritma yang digunakan hanya bergantung pada statistik dari data yang diobservasi. Dalam Kalman Filter digunakan sebuah asumsi, yakni data pengukuran adalah distribusi Gaussian, sehingga noise nya dapat diasumsikan sebagai Gaussian noise. Algoritma ini biasanya digunakan untuk memodelkan sebuah sistem yang dinamis dan linear (Linear Dynamic Systems), yakni sebuah sistem yang dapat dinyatakan sebagai berikut,&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/kalman-1.webp&#34; alt=&#34;Model persamaan pada sistem dinamis linear&#34; title=&#34;Model persamaan pada sistem dinamis linear&#34;&gt;&lt;/p&gt;
&lt;p&gt;di mana x dengan dot merupakan turunan x terhadap waktu, dan x sendiri merupakan sebuah vektor yang menyimpan nilai-nilai parameter pada waktu tertentu (sehingga dapat dianggap sebagai state), dan A merupakan sebuah matriks konstan yang bergantung pada sistem (Karena A konstan, maka sistemnya merupakan sistem linear). Contoh paling sederhana dari sistem seperti ini adalah trajectory sebuah benda yang jatuh bebas (free-fall), dengan state-nya dapat berupa ketinggian, posisi, ataupun kecepatan benda.&lt;/p&gt;
&lt;p&gt;Secara umum, proses pada Kalman Filter memakai konsep pemrograman dinamis serta rekursif, yang jika digabung serupa dengan back propagation. Terdapat beberapa tahapan utama dalam algoritma Kalman Filter:&lt;/p&gt;
&lt;h3 id=&#34;prediction&#34;&gt;Prediction&lt;/h3&gt;
&lt;p&gt;Pada tahap ini dilakukan estimasi nilai state pada waktu berikutnya.&lt;/p&gt;
&lt;h3 id=&#34;filtering&#34;&gt;Filtering&lt;/h3&gt;
&lt;p&gt;Pada tahap ini, nilai dari state saat ini (saat t = k) diprediksi berdasarkan nilai estimasi yang diperoleh dari data-data sebelumnya (saat t = k-1, k-2, …, 0). Tentu saja, kondisi awal (t = 0) merupakan sebuah kasus khusus karena merupakan titik awal pengambilan data, sehingga datanya diperoleh dari observasi ataupun sditambah dengan asumsi-asumsi lainnya.&lt;/p&gt;
&lt;h3 id=&#34;smoothing&#34;&gt;Smoothing&lt;/h3&gt;
&lt;p&gt;Pada tahap ini, nilai dari state di masa lalu ditaksir ulang berdasarkan data observasi saat ini. Hal ini, sesuai dengan namanya, bertujuan untuk memperhalus nilai prediksi sehingga meminimalisir noise dari hasil prediksi.&lt;/p&gt;
&lt;p&gt;Dalam penerapannya, algoritma dalam Kalman Filter melibatkan banyak sekali variabel, yang jika ingin diketahui lebih lanjut dapat dilihat pada tautan berikut.&lt;/p&gt;
&lt;p&gt;Namun, secara sederhana kita dapat memandang persamaannya itu sebagai berikut ini:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/kalman-2.webp&#34; alt=&#34;Persamaan dalam Algoritma Kalman Filter&#34; title=&#34;Persamaan dalam Algoritma Kalman Filter&#34;&gt;&lt;/p&gt;
&lt;p&gt;Dalam hal ini, variabel X(k) merupakan estimasi nilai state pada waktu ke-k, variabel Z(k) merupakan measured value pada waktu ke-k, dan K(k) merupakan nilai dari koefisien Kalman Gain. Nilai koefisien ini lah yang perlu dihitung agar X(k) dapat mengestimasi nilai state lebih baik daripada Z(k), karena jika Z(k) sudah baik, kita mungkin tidak perlu lagi melakukan estimasi lebih lanjut. Estimasi ini dilakukan karena perhitungan Z(k) melibatkan ketidakpastian (noise), dan pada algoritma ini diasumsikan distribusi nilai dari data Z mengikuti distribusi Gaussian.&lt;/p&gt;
&lt;p&gt;Selain itu, Kalman Filter disebut juga sebagai predictor-corrector algorithm. Hal ini dapat dilihat sesuai ilustrasi berikut, yang menggambarkan flow dari algoritma Kalman Filter secara sederhana:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;images/kalman-3.webp&#34; alt=&#34;Flow Algoritma Kalman Filter&#34; title=&#34;Flow Algoritma Kalman Filter&#34;&gt;&lt;/p&gt;
&lt;p&gt;Step prediction dilakukan untuk menghitung estimasi nilai state pada waktu berikutnya, sedangkan step correction dilakukan untuk melakukan smoothing serta mencari nilai optimal dari Kalman Gain dengan menggunakan measured value pada saat itu.&lt;/p&gt;
&lt;h2 id=&#34;penerapan-kalman-filter&#34;&gt;Penerapan Kalman Filter&lt;/h2&gt;
&lt;p&gt;Terdapat banyak penerapan Kalman Filter dari berbagai macam bidang. Secara umum, teknik ini sangat berguna dalam pemodelan sebuah sistem yang dinamis (yakni sistem yang nilai parameternya berubah-ubah seiring waktu), dan hasil pengukuran nilai parameter tersebut dapat memiliki error sehingga menghasilkan noise. Beberapa penerapannya adalah sebagai berikut:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sistem kontrol, navigasi dan kendali, seperti pada robot dan rudal.&lt;/li&gt;
&lt;li&gt;Tracking pergerakan objek dan estimasi lokasinya, seperti estimasi ketinggian sebuah spinning spacecraft¹ , estimasi lokasi robot, dan lain-lain. Pada device yang lokasinya * diinformasikan melalui GPS, bisa saja titik lokasi yang ditampilkan oleh GPS memiliki noise, dan Kalman Filter digunakan untuk memberikan estimasi lokasi device dengan lebih baik.&lt;/li&gt;
&lt;li&gt;Pada ekonomi dan quantitative trading, contohnya prediksi permintaan peminjaman international reserve sebuah negara²&lt;/li&gt;
&lt;li&gt;Pada bidang computer vision, seperti feature tracking, cluster tracking, pengukuran fisis (seperti kedalaman atau kecepatan) berdasarkan data dari perangkat seperti kamera, radar, dan lain-lain.&lt;/li&gt;
&lt;li&gt;Prediksi nilai berikutnya pada sebuah time-series&lt;/li&gt;
&lt;li&gt;Beberapa contoh seperti peluncuran Falcon 9 milik SpaceX, dan peluncuran Apollo 8 pada tahun 1968, yakni sebuah human spaceflight pertama yang mengorbit bulan.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;sumber&#34;&gt;Sumber&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20080040715.pdf&#34;&gt;https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20080040715.pdf&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://mpra.ub.uni-muenchen.de/22734/1/KalmanFilter.pdf&#34;&gt;https://mpra.ub.uni-muenchen.de/22734/1/KalmanFilter.pdf&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://www.quantstart.com/articles/State-Space-Models-and-the-Kalman-Filter/&#34;&gt;https://www.quantstart.com/articles/State-Space-Models-and-the-Kalman-Filter/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;http://www.sci.utah.edu/~gerig/CS6320-S2013/Materials/MI37slides-Kalman.pdf&#34;&gt;http://www.sci.utah.edu/~gerig/CS6320-S2013/Materials/MI37slides-Kalman.pdf&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
</content>
    </item>
    
  </channel>
</rss>
