下一章:前端人工智慧:前端AI研發演算法
對於人工智慧,我相信大家都不陌生。人工智慧(AI)作為一種新興技術,已經在各行各業得到了廣泛的應用。然而,當我們談到AI時,往往會想到機器學習、深度學習和資料科學等領域,而忽略了前端開發中AI的重要性。在這個數位化時代,前端開發已經成為了企業數位轉型的重要組成部分,如何將AI技術應用於前端開發,將成為未來企業數位轉型的重要趨勢。
那麼在正式進入我們本站的旅程前,我想先請教一下大家,請問什麼叫人工智慧?
相信大家都有自己的理解,但卻覺得這個問題答案過於浩大,充滿未知。那我再換個角度問,你覺得人工智慧厲害還是人厲害?
人工智慧vs 人
我相信有的會說人工智慧厲害,畢竟很多人做不出來的計算,但是人工智慧可以做出來;有的會說人厲害,畢竟人工智慧就是人創造出來的。當我們談論兩件事的比較時,我們總是會去考慮到它們各自的優點和缺點。人工智慧可以透過機器學習和深度學習來模擬人類的思維和行為,但是它們缺乏情感和創造力。相較之下,人類具有廣泛的知識和經驗,可以創造出令人驚嘆的藝術品和科技發明。
例如我來跟大家講個小故事:
有一天,一個人工智慧對一位人類說:“我可以模擬你的思維和行為。”
人類回答:“那你能否像我一樣喜歡吃巧克力呢?”
人工智慧回答說:“我不喜歡吃巧克力,但我可以編寫一個程序,讓我假裝喜歡吃巧克力。”
這個故事其實反映的是人工智慧和人之間的差異。人工智慧可以透過機器學習和深度學習來模擬人類的思維和行為,但是它們缺乏情感和創造力。在這個故事中,人類問人工智慧是否喜歡吃巧克力,而人工智慧回答說它不喜歡吃巧克力,但可以編寫一個程式來假裝喜歡吃巧克力。這顯示人工智慧可以模擬人類的行為,但是它們卻無法像人類一樣擁有真正的情感和感受。
那由此我們是不是可以說明,人就是比人工智慧厲害呢?
2016年3月,在全球觀眾的矚目之下,阿爾法狗在韓國首爾挑戰韓國超級圍棋高手,經過3個半小時的激戰,主場作戰的韓國超級圍棋高手投子認輸,從而宣告了阿爾法狗首局獲勝。
而對於阿爾法狗我們也不陌生,它是一款圍棋人工智慧程序,由位於英國倫敦的谷歌()旗下公司團隊開發。這個程式利用「價值網絡」去計算局面,用「策略網絡」去選擇下子。它的主要運作原理其實就是「深度學習」。
那什麼叫深度學習呢?
「深度學習」是指多層的人工神經網路和訓練它的方法。一層神經網路會把大量矩陣數字當作輸入,透過非線性活化方法取權重,再產生另一個資料集合作為輸出。這就像生物神經大腦的工作機制一樣,透過適當的矩陣數量,多層組織連結一起,形成神經網路「大腦」進行精準複雜的處理,就像人們辨識物體標註圖片一樣。
深度學習是一種非常強大的人工智慧技術,它已經被廣泛應用於影像辨識、語音辨識、自然語言處理等領域。如果把深度學習比喻成人類大腦,那麼神經網路就是大腦裡的神經元,而訓練神經網路就等於訓練大腦。
可以想像,如果我們把一隻貓的圖片輸入到神經網路中,神經網路會逐層地處理這張圖片,並最終輸出「這是一隻貓」的結果。這就像我們人類看到一隻貓時,大腦中的神經元也會逐層地處理訊息,最終讓我們認識到這是一隻貓。而對於人工智慧而言,它原本就擁有海量的記憶儲存量,並且擁有強大的計算力,再去配合複雜的演算法,透過深度學習的方法,它足以挑戰我們各行各業的權威。
那麼,我們是否又可以去認為人工智慧就是比人厲害呢?
所以,這個世界所有的爭論都是這樣的。各執一詞,各執己見,都是行走在期望說服他人的路上。但其實最簡單來說,人工智慧,就是人寫的程式。再通俗點來說,人工智慧其實就是人類技能的延展。例如人類最早使用的弓箭,因為我們都知道人類的範圍是非常有限的,那弓箭其實也就是最早的遠古時代的一個人工智慧,就是人類技能的一個延伸。
那按再換個角度我們再去想,如果現在有一場戰爭,是拿弓箭的贏,還是沒拿弓箭的贏?那這個時候就有人說了:
“那肯定是拿弓箭的贏呀!”
但身為程式設計師,我們要多維度去思考問題。例如,如果是近戰呢,你拉弓射箭的時間,我已經可以一拳打倒你了,那這時候你說誰厲害?
由此說明,人工智慧,只能說在一個方面是作為人類技能的一個延展,但不是全部。也就是說,人工智慧是人寫的,是作為人類在一個方面的加強,在某些層面和角度上,人類基本上是超越不了人工智慧的,但也僅限於某些角度。像上面的例子中,人工智慧的優勢僅在遠距離,但是近距離人類還是佔優的。
所以我們根本不需要糾結孰強孰弱,而是應該利用好我們人類技能的加強,去實現更多便捷人類生活的功能,去攀登更遠的科技頂峰。
那接下來,我們再來聊聊前端的人工智慧。
什麼是前端人工智慧
當你聽到前端人工智慧這個詞時,我相信你也跟我第一次聽到時一樣。
什麼?前端都已經發展成這樣了?前陣子我還剛聽完「前端已死」論來著。
隨著人工智慧、機器學習等新技術的興起,有些人開始質疑前端開發是否「已死」。確實,我們再看看現在橫空出世的,它透過訓練模型來模擬人類的語言行為,可以透過文字交流與使用者互動,一時間掀起了一股人工智慧的浪潮。而它的出現,也預示著自然語言處理和人工智慧領域的進一步發展與創新。
不過仔細一想,前端早已不是1990年代初那個靜態頁面時代。從2010年起,單頁應用(SPA)更是席捲全球,更不用提到目前為止佔領前端市場的三大巨頭框架Vue.js、React 和。
所以前端會「死得掉」嗎?我覺得不會。因為按照目前的時代趨勢來看,前端在很長的一段時間內都會佔據網路應用開發中的重要位置。在當今網路時代,行動終端和Web應用已經成為人們日常生活中不可或缺的一部分。看看用戶量不斷飆升的小程序,再看看越來越便捷的互動體驗和豐富多彩的用戶介面。隨著人們對行動終端和Web應用的需求不斷增加,前端開發的需求也將持續成長。
所以不是隨著人工智慧、機器學習等新技術的興起,前端就會逐漸走向沒落。而是前端開發與其他技術的整合也將帶來新的發展機遇,例如在目前前端人工智慧的技術應用中,我們常常會發現它主要應用於:
1.自然語言處理(NLP)
透過使用自然語言處理技術,前端應用可以理解和解析使用者的文字輸入。這使得前端應用能夠進行文字分析、語意理解、情緒分析等任務,從而更好地回應使用者需求。細心想一下,這聽不就是目前的形式嗎?
舉個例子,假設有一個線上客服聊天介面的前端應用。使用者可以透過文字輸入與客服進行交流。前端應用利用NLP技術來理解使用者的問題,並提取關鍵資訊。然後,它可以根據問題的語義進行匹配,提供相關的解決方案或建議。同時,透過情緒分析,前端應用還可以識別使用者的情感狀態,以更好地滿足其需求,提供相應的支援。
而自然語言處理(NLP)也是人工智慧領域中應用最廣泛的技術之一,也是由於NLP技術在多個領域具有廣泛的應用前景,因此它的市場規模也在不斷增長。根據報告和預測,全球自然語言處理市場預計將在未來幾年內保持強勁成長。而身為程式研發工程師的我們,在面對如此強大市場的情況下,總有一天需要在程式碼程式中面對它。
2.智慧推薦系統
前端應用可以利用推薦演算法和機器學習技術,根據使用者的行為和偏好,提供個人化的推薦內容,如產品推薦、新聞推薦等。例如你是否會有過在某個應用上因為瀏覽時間相對較長,結果系統不停給你推薦類似的產品的經驗。
其實它就是利用推薦演算法和機器學習技術根據使用者的行為和偏好,提供個人化的推薦內容。這些系統可以分析使用者的歷史行為數據,如瀏覽記錄、購買記錄、評價等,以及其他輔助訊息,如用戶的興趣愛好、社交關係等,從而為用戶推薦他們可能感興趣的內容或產品。
它的應用也相當廣泛,涵蓋了多個領域,包括電子商務、社交媒體、音樂和視訊串流、新聞和內容平台等。例如音樂和視訊串流推薦,音樂和視訊串流平台使用推薦系統來向用戶推薦他們可能喜歡的音樂、電影、電視節目等。這些推薦可以基於用戶的聆聽和觀看歷史、評分、以及與其他用戶的相似性等資訊。
3.機器學習與深度學習
前端應用可以使用機器學習和深度學習模型,透過前端設備本地運行的方式進行模型推斷和預測。這使得前端應用能夠實現一些基於數據的智慧功能,如影像辨識、語音辨識等。
影像辨識、語音辨識在我們日常生活中也很多見,例如輸入法的語音辨識文字,相機的人像辨識等。無論是影像辨識還是語音識別,前端的角色通常是獲取輸入資料(影像或語音),將其傳遞給相關的處理庫或雲端服務,並處理返回的結果。這些處理可以在前端設備上本地進行,也可以將資料傳遞到後端進行處理,具體取決於該應用程式的需求和可行性。
例如我們作為前端,現在想實現一個語音識別,我麼可以先使用瀏覽器提供的Web API,透過程式碼啟動語音識別,取得使用者的語音輸入,並將其轉化為文字。然後可以使用該文本進行後續的處理和分析。
Web API是一個Web標準,它提供了瀏覽器原生的語音辨識和語音合成功能,使得開發者可以透過程式碼實現在網路應用中與使用者進行語音互動的功能。
而當我們說到前端人工智慧,其實顧名思義,前端人工智慧是指將人工智慧技術應用於前端開發領域,讓前端應用程式具備智慧化的能力與功能。在傳統的程式開發上,前端開發主要關注使用者介面的設計和交互,而前端人工智慧的出現為前端應用程式增加了智慧化的特性。
而作為新時代的產物- 前端,世間萬物的存在必有它存在的道理。上面我們舉例了前端在技術應用上的主要用途,很抽象,甚至對於平常只使用Vue 、React 等函式庫進行開發應用程式的前端同學們更顯得格外遙遠。但事實上真的有這麼遙遠嗎?真的這麼不貼近日常的研發工作嗎?隨著的突然爆火,未來的市場逐漸會呈現以下趨勢(僅代表個人觀點):
人工智慧(AI)和機器學習(ML)在各個領域都發揮著越來越重要的作用。未來程式開發市場可能會看到更多AI和ML的整合,使開發者能夠建立智慧化的應用程式和服務。
例如某天公司突然跟你講:
“我想在我們的系統上實現一個需求,你要幫我分辨出我們公司的場地哪個時間段人最多”
這時候該怎麼辦?那我們首先得利用人工智慧(AI)和機器學習(ML)技術去對圖片進行分割場景,區分出屬於和不屬於人的像素,以及屬於24 個身體部位中每個部位的像素。
然後我們可以統計出每個時段的攝影捕捉圖,看下哪個時段的捕捉圖中人數最多。
在目前百花齊放的大前端時代,前端已經出現了一系列的庫去輔助我們實現人工智慧:
.js:可以在瀏覽器中運行機器學習模型,支援圖像、文字和聲音等多種應用場景。 :可以用於創建和訓練神經網絡,支援多種類型的神經網路。 :可以在瀏覽器中進行影像分類、物件偵測等任務。 ml5js:可用於建立和訓練機器學習模型,支援多種應用場景,包括圖像、文字、音訊等。
透過利用這些函式庫和工具,前端開發者可以將人工智慧和機器學習的能力融入前端應用中,為使用者提供更智慧、個人化的體驗。這種前端人工智慧的應用不僅可以提升使用者的滿意度,還可以為企業帶來更多的商業機會和競爭優勢。
所以,身為前端開發工程師,了解和學習人工智慧和機器學習是很有必要的。雖然你可能不需要成為一個人工智慧(AI)和機器學習(ML)的專家,但對於如何利用這些技術來增強前端應用的能力,以及在未來發展浩浩蕩蕩趨勢的場景下去完成自己的工作還是很有幫助的。
在接下來的課程中,我將為大家打開前端人工智慧研發的啟蒙大門。雖然前端人工智慧目前可能還沒有完全實現像這樣的完整人工智慧模型,但透過利用現有的人工智慧(AI)和機器學習(ML)的程式庫和工具,前端開發者可以實現一些基本的人工智慧功能,提升前端應用的智慧化程度。隨著人工智慧和機器學習在各個領域的發展,前端人工智慧將在未來扮演更重要的角色,為前端開發者創造更多的機會和挑戰。