![](https://velog.velcdn.com/images/you-genie/post/db6d688a-2f58-499d-937a-9c1966f8538e/image.png)
Symbolic AI vs Neural(Connectionist) AI
Neural AI
- 숨겨진 의미를 뜻하는 노드의 연결인 '네트워크' 사용. 각각 노드값과 노드 사이의 연결 상태 등을 통해 값을 도출한다.
- 숨겨진 패턴 인식에 능하다
- 정보가 네트워크상에 퍼져있다. = 네트워크를 아무리 쳐다봐도 각각의 요소가 뭘 뜻하는 지 이해할 수 없음.
- 학습을 통해 노드값과 연결값을 배운다.
- 약간 인간의 감 같은 존재... 왜 이렇게 도출되는지 모르겠지만 뭔가 그럴 것 같은데? 의 느낌.
Symbolic AI
- '기호' 와 기호간 관계를 통해 문제 해결을 진행함
- knowledge base
* fact - 문제에 대한 모든 지식 창고
- rule - 어떠한 fact가 있을 때, 이러이러한 결과로 이어진다 - 는 if-then ...의 형태로 만들어진다. 이 규칙이 핵심!
- inference engine
* knowledge base를 사용해서 새로운 결론을 도출하거나 문제를 해결함.
- 인간의 사고에 가까워서 논리적 추론에 능하다. 추리할 때 여러 단서를 조합해서 원인을 찾아내는 것과 유사하다.
장단점?
위에서 감과 추론이라고 말했는데 그렇기 때문에 장단점도 이와 유사하다.
장점
- neural AI는 숨겨진 패턴을 찾거나 예측하는 데 능하다. 명시적으로 드러나지 않는 것을 찾아낼 수 있다. 학습하지 않은 새로운 데이터에서도 (한정될 수는 있지만) 예측해낼 수 있다.
- symbolic AI는 규칙기반이기 때문에 추론이 정확하며 모델 자체가 해석가능하다.
단점
- neural AI를 학습하기 위해서는 아주 많은 데이터가 필요하며, 학습을 시켜도 내부를 분석해내는 것이 불가능에 가깝다. (챗지피티를 보면 알 수 있듯이) 얘를 믿을 수 없다(정확도 guarantee 불가능)
- symbolic AI는 규칙에 없는 데이터를 만나는 순간 무너진다. 복잡한 인식이 불가능하다.
Neurosymbolic AI
- 생각보다 간단하다.
![](https://velog.velcdn.com/images/you-genie/post/51c7b17e-e295-4cb8-84bd-a7cbeb51254f/image.png)
- neural AI가 패턴 및 심볼을 뽑아내면, symbolic AI가 그것을 해석해서 결과를 내놓는다.
NLP에서?
간단한 예로 번역에서
- 문법구조: symbolic AI가 해냄
- 문맥: neural AI가 해냄
이런 방식인데, ACL 2018 Neural-Symbolic Machine Translation을 예로 하나만 해 봅시다
- LM 모델이(아직 2018년이라, 생성모델은 안 쓰고 encoder-decoder를 썼다) 초기 번역을 만든다.
- 초기 번역 부분에 symbolic AI를 집어넣어 언어규칙에 다라 재배열 및 수정 진행.
* if the verb is 'is', then it should be followed by a noun phrase
와 같은 규칙 적용 가능