13-1 人工智慧 13-2 雲端運算 13-3 感測網路與物聯網 13-4 生物資訊 13-5 計算機萬能嗎? 第13章 其他重要課題 13-1 人工智慧 13-2 雲端運算 13-3 感測網路與物聯網 13-4 生物資訊 13-5 計算機萬能嗎?
13-1 人工智慧 人工智慧,簡稱AI,顧名思義,就是「人工」形成的「智慧」 人工智慧的研究,是希望使電腦系統也具有人類的知識,和學習、推理的能力,以便電腦可以自行判斷來解決不同的問題 人工智慧的名詞,是由約翰麥卡錫於西元1956年所提出 一些重要的理論和技術於1960年代先後被提出來,而逐漸形成一股研究AI的熱潮
人工智慧相關技術 知識表示 研究如何將複雜的相關訊息表示於電腦系統 範例:語意網(semantic network)
人工智慧相關技術(續) 邏輯系統 邏輯常被用來表示因果關係,像是「若下雨,則撐傘」;或是一些更複雜的規則 將人類進行事實的歸納及推理等活動,描述成一條條的規則建立在電腦系統裡,有時也稱為生產系統(Production System)
人工智慧相關技術(續) 經驗法則搜尋 從眾多的邏輯規則中,快速的找尋一條合乎限制的規則 所謂的經驗法則,就是並不是永遠成立,但是在絕大部分都是成立
人工智慧相關技術(續) 符號處理程式語言 具有推理判斷能力的電腦系統,通稱為智慧型系統(intelligent system)。 便於表示知識和邏輯推理 適於符號處理的程式語言,為LISP和PROLOG 具有推理判斷能力的電腦系統,通稱為智慧型系統(intelligent system)。
人工智慧的應用 專家系統 具有特殊能力,能處理特定問題的系統 譬如:將醫生診療病人的過程寫成一條條的法則,而成為輔助診斷的軟體系統
人工智慧的應用(續) 電腦下棋 模擬人類在下棋時決斷的過程而寫出來的程式,基本上是根據目前棋盤上棋子的排列,再預測未來對方會如何下棋子,來決定現在要下哪一步棋 IBM的電腦「深藍」曾打敗過世界排名第一的西洋棋高手
人工智慧的應用(續) 自然語言處理 自然語言:人類之間溝通所使用的語言 研究的目的:希望電腦能夠直接瞭解人類所說的話,就知道去執行什麼命令,而不需要透過程式語言。 好處:大幅度拉近人與機器之間的距離 困難:為人類社會自然形成,複雜度相當高 機器翻譯為其應用之一,譬如:把一篇英文論文,自動翻譯成一篇中文論文
人工智慧的應用(續) 資料探勘 從大量的未處理資料(Raw Data)中,挖掘出有建設性的資訊(Information) 參見第11-4節的討論
人工智慧的應用(續) 資訊擷取(Information Retrieval;IR) 處理的對象為大量的文件 查詢方式基本上是以關鍵字為主,然後根據公式計算文件與該關鍵字的相關性,再將分數較高的文件輸出。 近期熱門應用為網頁搜尋 Yahoo和Google等進一步針對HTML裡的特定表示法,如超連結(Hyperlink)等,加以分析,大幅提昇搜尋結果的準確率。
人工智慧的應用(續) 機器人 機器人的實做包含電機方面的控制技術,也包括人工智慧的技術 若要和機器人對話,必須仰賴自然語言的處理技術; 若要讓機器人能夠隨意走動,且能辨別前方的物品,必須靠電腦視覺(computer vision)的技術; 等等
13-2 雲端運算 「雲端」的由來 什麼是雲端運算? 教科書常常把網際網路以一朵雲來表示 不是很精確的定義:所有的服務都來自於網際網路 比較完整的定義: 使用者可以在最低成本管理下,按照每次使用量計費(pay-per-use),透過網路取得高可用性、方便且即時的計算資源
雲端運算 (續) 雲端運算是許多技術的集結起來的成果 以網路儲存為例 想增加隨時可以增加 不想用時隨時可退回 用多少量、付多少錢 高可用性,不會故障或遺失資料
雲端運算的服務類型 IaaS – Infrastructure as a Service PaaS – Platform as a Service SaaS – Software as a Service
IaaS 向服務提供者租用機器 提出要租用的機器規格 立刻「生」出一台機器,可遠端登入操作 CPU、記憶體、硬碟大小、作業系統等等 立刻「生」出一台機器,可遠端登入操作 telnet、ssh、或是遠端桌面 使用「虛擬化」(Virtualization)技術達成
虛擬化技術 簡單的說,在一台實體機器上,運作多台虛擬機器 實體機負責提供硬體資源、管理虛擬機器 虛擬機和實體機可以是不同的作業系統,甚至可以是不同的CPU架構 每個虛擬機彼此互各自獨立 桌上型電腦亦有類似應用,如VMWare和VirtualBox
虛擬機範例 在Mac OS X電腦裡開始虛擬機,執行Windows XP作業系統 (使用VirtualBox軟體建立的虛擬機)
IaaS服務提供者 有許多IaaS的服務提供者,最有名的大概是Amazon Amazon的成功案例 利用100台主機同時處理1851-1992年所有的新聞影像圖檔轉為PDF文件檔 一天就完工!
PaaS IaaS只提供主機和作業系統,其他都要自己安裝 PaaS則更進一步地提供平台 適合用來開發網路服務 提供網頁伺服器、開發環境、各種資料庫、儲存空間等等 需要的開發軟體已事先裝好,不需自己管理設定
選擇PaaS 每一家提供的平台不同 Google的Google Application Engine (GAE) – 適合喜歡用Google API的開發人員 Windows Azure – 適合喜歡用微軟體產品的開發人員 其他如CloudBee、Heroku、OpenShift等等 – 較通用的平台,提供Java、PHP、Python等環境
SaaS 將「軟體」或是「軟體元件」建置在雲端上 使用者不再需要安裝本機軟體 瀏覽器連上去馬上就可以用 一般使用者的日常生活應用都可以得到解決 Email、辦公室軟體、儲存空間、遊戲等等 也有商用軟體及軟體元件 ERP、CRP軟體等等 軟體使用者不再需要自行維護伺服器,也不再需要安裝和更新軟體
雲端運算背後的技術 虛擬化 除了主機虛擬化之外,還有顯示卡虛擬化(GPU virtualization)、儲存虛擬化(software defined storage)、網路虛擬化(software defined networking)等等 軟體讓虛擬化的環境更有彈性
雲端運算背後的技術 (續) 分散式運算 分散式檔案系統 分散式儲存 多元的前端界面 如提供Map Reduce的Hadoop等 如GFS、HDFS等 分散式儲存 如Cassandra、HBase、MongoDB等 多元的前端界面 如HTML5、CSS、AJAX等
雲端運算的應用 包羅萬象 透過網路,讓輕薄的行動裝置可以擁有各種龐大的計算資源 雲端Email:如Gmail 雲端硬碟:如Google Drive、Dropbox 線上影音:如YouTube 雲端遊戲:如OnLive、Gaikai 巨量資料(big data)處理及分析 透過網路,讓輕薄的行動裝置可以擁有各種龐大的計算資源
13-3 感測網路與物聯網 裝置與裝置之間的網路
感測網路 目的:在大規模的實驗場裡進行數據的搜集 感測器所形成的網路稱為「感測網路」 大規模:房間、建築物、農場、森林、海洋等 數據的搜集:使用各種感測器 溫度、溼度、聲音、振動、壓力等等 感測器所形成的網路稱為「感測網路」
感測網路 (續) 感測器之間通常是以無線的方式傳輸資料 感測器必須要耐用:防火耐摔、省電便宜、電池供電 類似無線網路的ad-hoc模式 常用ZigBee的標準 感測器必須要耐用:防火耐摔、省電便宜、電池供電 需要一些特別的裝置扮演「基地台」的角色 搜集區域資料,進行資料轉送、匯整及回報 通常是規格較佳的裝置,甚至可能有外部電源
感測網路:範例一 監控森林大火 感測器直接「撒」入森林裡 偵測到溫度上升、二氧化碳濃度高時,便進行回報 範圍:一整座森林 感測器:接收GPS訊號、監控溫度、監控二氧化碳濃度 感測器直接「撒」入森林裡 偵測到溫度上升、二氧化碳濃度高時,便進行回報
感測網路:範例二 水下探測
物聯網 物物相連 每個裝置都可以透過網路相互交換訊息 網路架構類似感測網路 – 階層式的架構 出自1995年,比爾蓋茲《未來之路》一書 感知層 – 最貼近現場的裝置,負責搜集資訊 網路層 – 負責資料傳遞與轉送 應用層 – 負責資料匯整及分析
數位家庭 家裡所有的裝置都上網 所有的裝置可以透過手機遠端控制 偵測屋主的位置及生活作息:空調、燈光自動調整 與醫療中心連線:健康數據搜集、居家照護 與警政單位連線:遠端監控
智慧電網 監控電力使用 調配電力來源 區隔用電時間、建議用電時段
智慧電網 (續) 配合智慧電表,進行管控
13-4 生物資訊 生物資訊學是一個跨領域的學門: 結合生物、資訊科學、數學、物理及化學等領域 終極目標:了解生物特性及生命本質 重要的子領域: 大量資料的分析演算法及統計方法 各種生物序列, 結構, 功能及演化的分析與解釋 管理及使用各種型態資訊的軟體工具
13-4 生物資訊 生物相關資料的累積迅速,資料量非常大,亟需電腦協助分析 提供實驗設計更宏觀的看法,從以往個別基因的研究,邁向整個基因組的研究 透過資料挖掘來了解基因功能及蛋白質結構,並更進一步了解演化歷史及物種間的演化關係
生物資訊相關主題 定序(sequencing) 基因組的DNA序列很長,但卻扭曲在小小的細胞內,目前仍然沒有方法可以一次將整個序列讀出來 現階段的方法都是將基因組序列切成很多的小段,然後藉由重疊的區域將整個基因組序列再組合回來
生物資訊相關主題 序列分析(sequence analysis) DNA序列間的比較 蛋白質序列間的比較 長序列的比較 相似序列的比較 多重序列比較
生物資訊相關主題 生物資訊資料庫(bioinformatics database) 生物序列相關的資訊累積很快,資料庫已成為生物資訊應用上最重要的工具 資料庫就是一堆資料的儲存庫,它的存放方式,通常會規劃得讓電腦可以快速搜尋及擷取資料。而資料庫管理系統則可讓使用者設計所需要的資料庫,以及操作資料庫所需的修訂、存取及搜尋功能。
生物資訊相關主題 找尋基因(gene finding) 給定一個基因組序列,決定各個基因的位置 由於目前尚未完全理解DNA語言,所以並沒有百分之一百正確的方法可以直接從基因組序列決定出所有的基因出現位置 現階段的方法,很多都是用已知的基因所歸納出來的規則來做判斷
生物資訊相關主題 蛋白質結構的預測(protein structure prediction) 蛋白質的功能很多是由它的結構所決定的 X-ray及NMR是目前決定蛋白質結構常用的方式 如何從蛋白質的一維序列推測它的三維結構,是一個很難但很重要的研究課題
生物資訊相關主題 演化樹的建構(evolutionary tree construction) 演化樹的建構可協助了解演化過程及歷史 有的方法根據特徵(character)保留的狀況表來決定演化樹 有的方法根據物種間的距離來決定演化樹 大部分的演化樹建構問題都是NP-Complete(換句話說,都是很難的計算問題)
生物資訊相關主題 其他課題: RNA二維結構預測(RNA secondary structures) 比較基因組學(comparative genomics) 基因網路(genetic networks) 微陣列晶片(microarrays 或稱基因晶片) 分子計算機(molecular computers)
13-5 計算機萬能嗎? 有些問題已證明是無解的,例如判斷程式是否會停的問題(halting problem) NP-Complete 所有NP-Complete問題,目前都沒有有效的精確解法,而且只要有一個找到有效解法,那所有NP-Complete問題都有有效解法了 許多看似簡單的問題,都已被證明為NP-Complete,例如:旅行推銷員問題和小偷背包問題。
13-5 計算機萬能嗎? 有個克里特島的人說:「所有克里特島人的每句話都是謊言。」 這句話是謊話 「程式是否停止問題」的不可解
13-5 計算機萬能嗎?