iT邦幫忙

2021 iThome 鐵人賽

DAY 7
2
AI & Data

人工智慧在音樂領域的應用系列 第 7

Day 7: 人工智慧在音樂領域的應用 (有趣的AI演算法一)

前面幾天我們講完了AI經過了幾次大起大落,最後在AlphaGo一戰封神後被推向最高端,機器學習/深度學習成為人人所追逐的技術。

但如同我們前面一再強調的: 機器學習/深度學習雖然熱門,但他只是眾多AI裡的一個分支而已,所以今天我們就來簡單的介紹一些比較常用的或是比較有趣的AI演算法。
(那你到底什麼時候才要講AI作曲......)
https://ithelp.ithome.com.tw/upload/images/20210922/20140556tWNPOvQ4Oc.jpg

什麼是演算法?

這邊我們先幫比較沒有資訊/程設背景的人做個簡單的介紹,如果你看到這邊已經一邊在挖鼻孔一邊想"看這個要幹嘛"的話,
https://ithelp.ithome.com.tw/upload/images/20210922/20140556u21mgn4uKr.jpg
開個玩笑~麻煩你去泡碗泡麵,然後自動跳過這個部分。

話都說到泡泡麵了,我們就拿泡泡麵來當作例子解釋什麼是演算法。
首先,如果今天你要泡泡麵來吃,那麼最常見的步驟就是:
https://ithelp.ith!ome.com.tw/upload/images/20210922/20140556ElvVOv5XDw.jpg
吹含吸舔摳

  1. 買泡麵/找出家裡有的泡麵
  2. 撕開包裝
  3. 加入調味料
  4. 倒入熱水
  5. 蓋著等三分鐘 (具體時間依照你想要的麵體軟硬調整)
  6. 吃泡麵

以上的步驟,就可以把它當成泡泡麵來吃的演算法

因此我們可以把演算法理解成:
一個已經被完整定義/規範好,並且可以讓電腦自動執行的程序/步驟。

那麼AI裡面有哪些有趣的演算法呢?
這邊我們選擇一些比較有趣或是最常被提及/使用的做個簡單的介紹:

演化式計算 (Evolutionary Algorithm)

在AI的各種演算法裡,有許多都是以模擬人類/生物的特性所設計出來的演算法 (後續會一一介紹),
而演化式計算就是模擬自然界物種生態而產生出來的一種演算法,裡面包含了如:
基因演算法 (Genetic Algorithm, GA)
演化式策略 (Evolutionary Strategy, ES)
基因程式設計 (Genetic Programming, GP)
等等,而這些演算法的的核心以達爾文的物競天擇,適者生存為主軸。
https://ithelp.ithome.com.tw/upload/images/20210922/20140556KYl9BrDbR3.jpg

簡單一點的來說的話,這類型的演算法(這三個在運行上有些許步驟差異)會針對要解決的問題,去
(1) 隨機亂數的給予一定數量的個體
(2) 而這些個體彼此之間會互相交配並產生子代
(3) 子代有機會產生些微的突變
(4) 把所有親代以及子代 集合起來,根據問題所劃出的標準去做篩選,把不符合標準或是得分(看問題如何定義)較低的後半部份個體淘汰 (不適者淘汰)
(5) 步驟(4) 存活下來的較好個體成為下一個世代的親代 (適者生存),接著回到步驟(2) 並不停的重複這些過程,直到達成預設的目標或是演化的世代 (每次2~5為一個世代) 到達設定的數目。
(6) 最後,活到最後一代的個體裡面,選出最好的那一個天選之人 ,即為最後的解。

聽起來很複雜的話,我們舉個例子來說明
(以下純粹是學術性的假想,所以不要有殘忍或是什麼其他的想法)
https://ithelp.ithome.com.tw/upload/images/20210922/20140556TJ4Ck7XYTj.jpg
如果今天在一個實驗室裡,科學家們希望可以培養出可以飛的小狗,那麼首先我們要
(1) 找一百隻狗來當我們的最初的個體
(2) 這些狗彼此之間交配並生下另外一百隻小狗 (子代)
(3) 生出來的 小狗 (子代) 都有機率發生一些 突變
(4) 接著把所有的狗,做個飛行能力 (此實驗的得分標準) 的測試,測試結果比較差的一百隻狗,把他們給......送人~
mf

因此這一百隻在飛行能力評比上表現較差的,就離開了這個實驗 (不適者淘汰)
(5) 步驟(4) 表現較好的一百隻狗成為下一個世代的親代 (適者生存)
接著我們再回到步驟(2) 並不斷的重複,直到我們
(6) 成功的演化出一隻會飛的狗,或是我們可能因為時間與資金有限,所以只能運行100個世代,一百個世代結束之後,如果我們沒有成功的演化出會飛的狗 ,那麼存活到最後的一百隻裡面,飛行能力測試成果最好的就是我們的最後解。

這樣的解釋有沒有對於演化式計算有比較清楚的初步了解了呢?
認真的同學這邊可以先做一下筆記,因為之後的某一天裡我也會更深入的介紹演化式計算要如何應用在AI作曲上面。但也不用擔心,真的忘記了再回來複習就好。

那麼明天我們再來繼續聊聊其他有趣的AI演算法,或是放棄停刊。


上一篇
Day 6: 人工智慧在音樂領域的應用 (AI發展史與簡介 - 一戰封神AlphaGo)
下一篇
Day 8: 人工智慧在音樂領域的應用 (有趣的AI演算法二)
系列文
人工智慧在音樂領域的應用30

尚未有邦友留言

立即登入留言