機器如何去理解一個「概念」?
首先給理解下個定義。我簡單定義理解就是對這個屬於概念的樣本不出錯,不管用什麼方法。
從目前來看,機器"理解"不了一個概念,因為除了比如人臉識別領域等,大部分領域機器做的不夠好。
我有一個不成熟的觀點去解釋這件事。
機器有能力"理解""一個概念,但人類不能向機器定義一個概念,所以機器理解不了。
現在人仿照人教人的方法教機器,簡單來說就是給這個概念的樣本,然後告訴它這是對的,哪些是錯的。
但問題是人傳遞不了這個概念的邊界,因為一個樣本裡面涵蓋的信息太多了。
我拿識別打個比方,給機器一張穿紅衣服的人的照片,它可能認為只有穿紅色衣服有胳膊有腿有臉有眼睛有鼻子有耳朵的才是人類,所以當一個穿藍衣服的人照片輸入機器,它認為錯的,這叫做"過擬合"。也可能認為只要有腿的都是人類,所以當一張狗狗的照片輸入時,它判斷為人類,這叫做"欠擬合"。
即便很多照片,機器也很難找到這個概念的邊界,或者說人類很難定義這個概念的邊界,尤其機器和人的特徵提取是不一樣的,人要在機器能夠感知的特徵上定義一個概念,這是有難度的一件事。所以現在用大樣本的方法,而且好的特徵提取方法特別重要,希望機器能夠找到概念樣本的交集,定義概念的邊界。
具體來說,機器的理解,是找到從一堆特徵到一個概念的映射。比如說人理解汽車這個概念,可能是有輪子,有引擎等等特徵,而且特徵有個具體的組合方式(散架的車不叫車),然後到汽車這概念有個映射。但機器怎麼提特徵人類不理解啊,可能灰度,可能梯度等等,而且,目前的大部分特徵提取方式(人給它編的),很難涵蓋組合結構信息,而且很難保證尺度不變旋轉不變放射不變等等。之所以dnn那麼work,與它好的特徵提取分不開的。 現在語音識別比圖像識別做得好,我認為是特徵影響的。
機器怎麼找到這個映射呢,目前是用某種函數,線性或者非線性去擬合它。函數的能力,也決定了機器能不能理解一個概念。
我認為目前函數的表現力是夠的(能夠擬合各種非線性映射),但是怎麼在現有的或者機器能夠感知到的特徵上定義一個概念是難的,(也就是既不過擬合又不欠擬合),所以機器能夠理解(現在dnn擬合非線性映射的能力夠),但是人類定義不了一個概念的邊界,所以表現出機器目前不能理解概念。
當然能定義但機器能不能學到又是一方面,能不能學到體現在機器計算能力和那些函數的表現力上,我覺得目前最主要的是不能定義,其次是計算力不足,有限的時間找不到擬合方式,對函數能力我還是有信心的。
不成熟的想法,拋磚引玉了。謝邀。。
如大夥所說,我也是覺得這個問題應該把引號打在"理解"這個詞上。而人對自己是是否理解一樣東西的判斷也是非常模糊,也會出錯。
下面的說法與@徐曉軼的觀點類似,再擴展一下吧。假設讀者對機器學習有一定概念吧。就我自己看來,理解,就是把一個實際的概念進行抽象化,然後與其它相關的概念進行聯繫,並且對聯繫進行描述。三個步驟。落實到機器上,抽象化這一步可以歸結為特徵提取,即是把實際物體表示成一串合適的數字。概念聯繫的話可以靠分類或者聚類來完成。鑒於這幾年DL的進展,特徵提取和分類任務已經做得不錯了,難點就在於怎樣描述概念之間的聯繫了。而事實上之所以分類和特徵提取做得讓人滿意,是因為它們的概念聯繫已經被人為地定義好了,機器只管按照人的定義去做就行。比如聚類任務中,類內距離和類間距離都是定義好的,一旦換一組定義就會出現截然不同的結果。用更通俗的例子就是,蘋果到底應該定義為一種水果,還是一個品牌?取決於周邊的其它概念,以及更高層的背景概念。於是層級聚類,以及概率邏輯,是我覺得未來比較值得關注的兩個方向。一個決定了抽象化的層次,一個決定了關聯的不確定性。說到這裡應該已經差不多能回答題主的問題了,腦洞比較多乾貨比較少,不知道各位看官是否還能看得下去。。。如果感興趣的人多的話我再補充吧。。。如何理解「理解」,這是個問題。任何東西在機器眼裡都是一串數字。
機器如何理解「樹」的概念? 取決於應用的需要。
A. 如果只關心能不能吃,那麼樹的概念就是 「一種不能吃的東西」。
B. 如果只關心能不能做燃料,那麼樹的概念就是 「一種可以燃燒的東西「。
當然,機器首先必需理解這些概念:」吃」,「燃燒」,「東西」...
C. 如果把一個樹形結構展示給機器,機器要對其產生概念,可以這樣來:
1. 靠訴機器,樹是若干元素(結點)集合。前提是:需要從應用功能的角度出發,讓機器理解「集合」和「元素」的概念。
2. 在代碼中以功能函數的形式定義 」結點間的關係「:
根結點要麼無屬性, 要麼有元素類型為結點的屬性集合。
其餘結點要麼無屬性,要麼有元素類型為結點的屬性集合(遞歸定義)。
根結點不是任何結點的屬性。
3. 讓機器有能力去訪問這些結點,並給予機器簡單的統計能力。
當機器訪問完這些結點後,會做出一個統計結果,如果這個統計結果顯示出了各結點在數學上的正確關係,我們就可以認為機器理解了「樹形結構」的本質特徵。……簡單講,機器所理解的,於其說是概念,不如說是特徵。在大量的特徵中,對實際應用沒有意義的特徵就是垃圾特徵(可以認為垃圾特徵不是特徵)。
那麼,男人如何理解 「女人」的概念?這也取決於實際應用的需要。
極端的講,在某些人的眼中,女人的概念就是「生孩子的機器」, 在另外一些人的眼中,女人的概念就是「洩慾的工具」, 對一個超級軟蛋來說,女人就是」老虎「……
就目前的水平而言,機器是不是真的「理解」並不好說。因為,我們也沒有對理解的機制下個明確的定義。
人如何理解一個小動物是貓?給你看一堆圖
告訴你,這個就是貓。有一天,你突然看到了一個沒見過的圖
因為你有了貓的概念,你知道這也是貓。人如此,機器也如此。給一堆樣本,提取特徵,訓練。它就能區分不在樣本中的新數據。
不用理解,只需記憶和再次識別。一個概念就是一個出現頻率高的pattern。
沒有價值體系就談不上理解,沒有生命就沒有價值體系。做不出有生命的機器,僅僅是延續現在的技術路線,那麼最終的理解只會發生在操作機器的人腦中,發生在機器中的過程不是理解,只是預處理。
「理解」的定義是什麼?在語音識別中,或計算機視覺中,理解就是對目標的準確標註吧。但我不知道這是不是題主的「理解」。
謝邀。
這個問題首先是一個哲學問題,什麼是「理解」?什麼是「概念」?記下了就是理解?還是要有回應行動才算?單這問題可能已經爭論不休。
可是電腦軟體如何把一段文本、圖片或聲帶化成數學上或機器可讀的問題,就可以成一個學科,但在一個可控的範圍內詳談。我只說文本吧,因為這是我工作的一部分。
把文本抽取出成有用的概念或信息,當然事前準備功夫不可少,如清理、stemming、分段等,這些詳細不說了。有些人只看某一些文本,那就過濾沒用的字。然後用bag of words model或word embedding algorithms化成矢量。bag of words基本上是每一元素代表一個字,embedded word vectors的方向則代表一個概念(最有名的方法是word2vec和GloVe,但也有其他如LDA2Vec, sense2vec, wang2vec等)。有時我們也藉助Princeton WordNet,它把字構成一個網路。謝邀。概念其實是人類對某類現象或事物的一個概括與總結,從這些事物或現象中提取類似的特徵,然後用一個名稱加以定義。以後對這一類事物或現象就可以直接用這個名稱來指代了。所以,計算機不需要理解一個概念,只要對你所給出的數據集合進行聚類,找出一個判別表(或識別樹什麼的都行),然後能用這個判別表對你給定的數據進行分類就可以了。這樣的行為,其實就等同於人類的概念了。當然,在運用上,現在計算機還差的遠的很。
謝邀。我並不擅長機器學習。個人認為,機器應該是通過構建關係來識別概念的。
觀點:機器理解概念的前提是人類本身能夠明確定義這個「概念」!當前的機器無法理解複雜「概念」,最主要的原因是人類無法給這個概念下有明確邊界的定義。比如說人與其他生物之間的區別就無法明確,因為樣本信息量太大,而且各種概念之間的邊界也比較模糊。
其次才考慮機器能否根據定義的特徵或邊界進行計算識別,理解概念。其實機器的計算能力是完全足夠滿足條件的。
因此,我認為問題的重點應該放在如何去定義的一個複雜「概念」,實際上就是我們所說的「演算法」!個人觀點,輕噴~機器人還理解不了「概念」。概念在人類大腦的形成,對於人類來講,也是一個謎。
首先,我們日常提到「理解」這個詞的不同場景,這個「理解」其實是映射到不同語義上的
那麼直接從場景上來看,有兩種情況
(1)小明被告知了一個概念 - 「A=C」,他說他「理解了(這個概念是怎樣得出來的)」。換句話說,小明能夠對它進行正確與否的判定,再換句話說,他能判定 他已知為正確的規則體系 與 這個新的概念 是相容的,過程如下:小明已知 - "A=B"、"B=C"、"=具有傳遞性" 三個已知為正確的判定條件,在此基礎上,他確認了"A=C"為正確,即 理解了它怎麼來的,即 「找到了推演路徑」(更抽象一級說,推演路徑即是 找到已知的規則體系與待判定對象之間的正確的邏輯運算關係)(2)小明被告知了一個概念 - "定義 A={1,2,3,4,5}",他說他「理解了A(的本質是什麼)」。換句話說,小明能夠依靠「A的本質」去判定諸如"3/6/10"這樣的對象是否「∈A」,實際上依然等同於 - 他可以「找到推演路徑」(導向結論「屬於/不屬於」的路徑)
所以,上述這兩個例子可以進一步找到共性 - 「能夠作出『正確』的判定」,即 由假定正確的規則體系出發 找到正確的推演路徑,這應該就是所謂的 「理解」 吧。
另外多說幾句,回歸到日常我們使用「理解」的語義,上述例子中就能體現出其語義含混之處了:
在我們找到一個「條件 - 推演路徑 - 結論」的結構後,我們分別可能會說「我理解了它怎麼得出來的」、「我理解了它(定義)到底是什麼」、「我理解了(被判定對象)到底 真/假or是/否」。然而,這些不同的語義實質上又都指向同一個本質 - 就是能找到這個整體的推演路徑結構。再扯一句,還有一種所謂的 未能理解/理解不正確,是指 對於概念本身的定義 有問題,即 概念本身的邊界條件未定義「正確」。對應到上文,則是 規則體系 本身出了問題導致未能「(正確的)理解」。這也就是其它很多人的答案中提到的。
然而關鍵還是在於,我們提到「理解」時,我們到底在說什麼。最後再多說一句,上述的定義是基於 純邏輯層面 的。實際真正要確定其定義、或者說 真正地實現「理解」這樣的機制,則需要能夠從底層物理定律中找到實現機制。換句話說,那才應該是真正的定義。如果底層物理定律不支持上述的實現,那麼將說明這個定義是需要修正的。我們則要重新思考「理解」到底是怎麼一回事,以及,找出上述定義中 哪些環節被我們理想化或混淆了、和 對於日常我們在語義的誤用情況給出合理的解釋。理解任何概念都是"學習",如果AI能知道"如何學習","如何理解",那麼它就能夠"理解任何概念"。
知不知道什麼是metadata? 如果"任何概念"都可以通過"一致的數據結構(same metadata)"描述出來,那麼AI就能夠通過該"數據結構"來"理解任何概念"。
如果有人能找出萬物之間的統一聯繫,即描述萬物的方法論,那麼AI就是"超級大腦","能解決任何問題的超能力者。"
關鍵是誰,什麼時候能得出描述萬物的方法論。談一點個人理解,目前機器學習很多問題都是在做分類,有了分類就有了抽象能力,這種能力非常關鍵。機器不知道貓是貓,狗是狗,但是能通過分類知道貓是一類,狗是一類。然後人再告訴機器,也就是有監督學習,打上標籤告訴機器這是貓,那是狗。於是就有了概念。另一些無監督學習則是單純的分類,這是一堆,那是一堆,具體這一堆是什麼,那就不知道了。
我就問一個問題,化學是物理嗎?
對於機器,你如何定義概念,他就如何理解概念。
外行人回答,首先機器是靠大量的運算,在設定的標準下,是非觀很明確,不是1就是0。連續的外來信息經過採樣變成斷續的信息,比如你在機器內設定1.5米是高的人,小於1.5米是低,1.5米為正常。那麼採樣到為1.4米,那就是低。
推薦閱讀:
※學習機器學習演算法一定要做到會手寫編程實現嗎?還是只要拿到數據後知道使用哪個演算法調用numpy的包就行?
※如何理解機器學習中雜訊影響模型複雜度問題?
※研究生畢業做機器學習數據挖掘程序員發展前景如何?在這方面跟博士競爭差距會有多大?
※知乎上有哪些關於大數據、推薦系統、機器學習之類的專欄?
※文本分類中,CHI演算法、TFIDF演算法、TextRank演算法都應該對應哪個環節?如何選擇?
TAG:人工智慧 | 機器學習 | 自然語言處理 | 深度學習DeepLearning |