
Thai: 
บางครั้งการค้นพบ hierarchical structure ในชุดข้อมูลก็มีประโยชน์ เช่น ต้นไม้
การกระจายคำของกลุ่มประโยค ในกรณีพวกนี้
Recursive Neural Tensor Networks หรือ RNTNs
นั้นตรงกว่า feedforward หรือ recurrent nets
ลองดูกันว่าทำไม
RNTNs สร้างขึ้นโดย Richard Socher แห่ง MetaMind 
เป็นส่วนหนึ่งของวิทยานิพนธ์ปริญญาเอกที่สแตนฟอร์ด
จุดประสงค์ของเน็ตเหล่านี้คือเพื่อวิเคราะห์ข้อมูล
ที่มี hierarchical structure แต่เดิม
มันถูกออกแบบสำหรับ sentiment analysis
โดย sentiment หรือความรู้สึกของประโยค
ไม่ได้ขึ้นอยู่กับแค่คำที่เป็นองค์ประกอบ แต่ยัง
ขึ้นอยู่กับลำดับที่จับกลุ่มตามหลักภาษา
ลองดูโครงสร้างของ RNTN กัน
RNTN มีองค์ประกอบพื้นฐานสามอย่าง

Korean: 
데이터의 계층적(hierarchical) 구조를 알면 유용한 경우가 있습니다.
예를 들자면 문장들의 파스 트리(parse tree)와 같은 것들이죠.
이런 경우에는,
Recursive Neural Tensor Networks 또는  RNTNs이
피드포워드 넷이나 회귀 신경망 보다 더 적합합니다.
자세하게 살펴보고 왜 그런지 보죠.
RNTNs는 메타 마인드의 Richard socher에 의해 고안되었는데,
그의 박사 학위 논문의 일부였습니다.
이 넷의 목적은,
계층적 구조를 가진 데이터를 분석하기 위해서였죠.
원래,
감성 분석(Sentiment analysis)를 위해 디자인 되었답니다.
문장이 가진 감성(Sentiment)은,
어떤 단어로 구성되었는지 뿐만 아니라,
단어들이 어떤 순서로 합쳐졌는가에 달려있습니다.
RNTN의 구조에 대해서 한 번 살펴보겠습니다.
RNTNs은 3개의 기본적인 요소로 구성되어있습니다.
Root(뿌리)라고 불리우는 부모 그룹과

English: 
Sometimes it’s useful to discover the hierarchical
structure of a set of data, such as the parse
trees of a group of sentences.
In these cases, Recursive Neural Tensor Networks,
or RNTNs, are a better fit than feedforward
or recurrent nets.
Let’s take a closer look and see why.
RNTNs were conceived by Richard Socher of
MetaMind as part of his PhD thesis at Stanford.
The purpose of these nets was to analyze data
that had a hierarchical structure.
Originally, they were designed for sentiment
analysis, where the sentiment of a sentence
depends not just on its component words, but
on the order in which they’re syntactically
grouped.
So let’s take a look at the structure of
an RNTN.
An RNTN has three basic components – a parent
group, which we’ll call the root, and the

Korean: 
Leaves(잎)라고 불리는 자녀 그룹들이죠.
각 그룹은 뉴런들의 집합이라고 볼 수 있습니다.
이 뉴런들의 수는 입력 데이터의 복잡도에 비례하죠.
여기서 보실 수 있듯이.
Root 그룹은 양쪽 Leaf 그룹에 연결됩니다.
그러나 Leaf 끼리는 서로 연결되지 않습니다.
기술적으로 말하자면,
세 개의 그룹은 "이진 트리"라는 것을 구성하게 됩니다.
일반적으로,
Leaf 그룹이 입력을 받고,
Root 그룹이 Classifier를 이용해서
분류 결과와 스코어를 출력합니다.
이 두가지 값의 중요도에 대해서 잠시 후에 다루도록 하겠습니다.
RNTNs의 구조는 언뜻 단순해 보이지만,
회귀망과 마찬가지로,
신경망의 복잡도는 데이터가 그 넷 안에서
어떻게 움직이느냐에 따라 다릅니다.
RNTN의 경우에는,
이 과정이 반복적(recursive)입니다.
이런 반복이 어떻게 이뤄지는가 보기위해서,
예를 한번 들어볼게요.
영어 문장 하나를 입력으로 주고,
해당 문장의 파스 트리를 출력으로 받아 보기로 하죠.

English: 
child groups, which we’ll call the leaves.
Each group is simply a collection of neurons,
where the number of neurons depends on the
complexity of the input data.
As you can see, the root is connected to both
leaves, but the leaves are not connected to
each other.
Technically speaking, the three components
form what’s called a binary tree.
In general, the leaf groups receive input,
and the root group uses a classifier to fire
out a class and a score.
We’ll get to the significance of these two
values in a moment.
An RNTN’s structure may seem simple, but
just like a recurrent net, the complexity
comes from the way in which data moves throughout
the network.
In the case of an RNTN, this process is recursive.
To see how this recursion works, let’s take
a look at an example.
Let’s feed an English sentence into the
net, and receive the sentence’s parse tree
as output.

Thai: 
-- parent group ซึ่งเราจะเรียกว่าราก
และ child groups ซึ่งเราจะ
เรียกว่าใบ แต่ละกลุ่มก็แค่กลุ่ม neurons
โดยจำนวนของ neurons ขึ้นอยู่
กับความซับซ้อนของข้อมูลนำเข้า
อย่างที่คุณเห็น รากเชื่อมกับใบสองใบ
แต่ใบจะไม่เชื่อมต่อกัน กล่าวคือ องค์ประกอบสามอย่าง
รวมกันเรียกในทางเทคนิคว่า binary tree
โดยทั่วไปกลุ่มใบจะรับค่านำเข้า และกลุ่มราก
จะใช้ classifier เพื่อบอกประเภทและคะแนน
เราจะพูดถึงความสำคัญของ
ค่าสองอย่างนี้ในไม่ช้า โครงสร้างของ RNTN
อาจดูง่าย แต่ก็เหมือนกับ
recurrent net ความซับซ้อนมาจากวิธีที่
ข้อมูลเคลื่อนที่ไปตามเครือข่าย
ในกรณีของ RNTN กระบวนการนี้จะซ้ำไปเรื่อยๆ
เพื่อให้เห็นการทำซ้ำนี้เป็นอย่างไร 
ลองดูตัวอย่างกัน ลองใส่ประโยค

Korean: 
첫 단계에서.
문장에 첫 번째 두 단어를 leaf 그룹 1,2에 각각 배정합니다.
실제적으로는,
Leaf 그룹이 실제로 단어를 그 자체로 받아들이는 것은 아닙니다.
대신, 단어의 벡터형 표현을 받아들이는 것이죠.
벡터란, 어떤 숫자들의 순서있는 배열입니다.
알려진 바로는,
이 넷은 어떤 특정한 벡터 형태와 함께 가장 잘 작동합니다.
특히.
좋은 결과는, 두 벡터의 숫자들이
두 단어의 유사성을 인코딩 하고 있을때 나옵니다.
사전의 다른 단어들과 비교했을 떄의 유사성 말이에요.
자세한 작동 방식에 대한 설명은 이 영상의 범위를 넘어버립니다.
두 벡터는 넷을 따라서 root로 올라가게 됩니다.
Root에서는 이 값들을 처리하고, 두 가지 값을 내놓죠.
Class와 Score 입니다.
Score는 현재 파스(Parse)의 질을 나타내게 되고,
Class는 현재 파스(Parse) 구조의 인코딩을 나타내게 됩니다.
이 부분이 바로 넷이 회귀(Recursion)하게 되는 부분입니다.
다음 단계에서는,
첫번째 Leaf 그룹이 현재 파스를 입력으로 받아들입니다.

Thai: 
ภาษาอังกฤษลงไปในเน็ต และให้การกระจาย
ประโยคเป็นค่าส่งออก ในขั้นแรก เราใส่
คำสองคำแรกลงในกลุ่มใบ 1 กับ 2 ตามลำดับ
ในทางปฏิบัติ
กลุ่มใบไม่ได้รับคำแบบนี้จริงๆ แต่เป็นเวกเตอร์ที่ใช้
แทนคำ เวกเตอร์ก็คือชุดตัวเลขที่มีลำดับ 
และปรากฎว่า
เน็ตพวกนี้ทำงานได้ดีที่สุดเฉพาะกับ
เวกเตอร์ประเภทหนึ่ง -- มันทำงานได้ดี
เมื่อตัวเลขในเวกเตอร์สองตัวแสดง
ความคล้ายคลึงระหว่างคำสองคำ
เมื่อเปรียบเทียบกับคำอื่นๆ ในบรรดาคำศัพท์
รายละเอียดจริงๆ ของกระบวนการนี้เกิน
ขอบเขตของวิดีโอนี้
เวกเตอร์สองตัวเดินทางผ่านเน็ตไปยังราก
ซึ่งประมวลผลพวกมันและยิงค่าออกมา
สองค่า -- ประเภท และคะแนน
คะแนนแสดงคุณภาพของการกระจายปัจจุบัน
และประเภทแสดงการเข้ารหัสของ
โครงสร้างในการกระจายปัจจุบัน นี่คือ
จุดที่เน็ตเริ่มการทำเรียกซ้ำ ในขั้นต่อไป
กลุ่มใบอันแรก

English: 
At step one, we feed the first two words into
leaf groups one and two, respectively.
As a practical note, the leaf groups do not
actually receive the words per say, but rather
vector representations of the words.
A vector is just an ordered set of numbers,
and it’s been shown that these nets work
best with very specific vector representations
– particularly, good results are achieved
when the numbers in the two vectors encode
the similarities between the two words, when
compared to other words in the vocabulary.
The exact details of this process are beyond
the scope of this video.
The two vectors move across the net to the
root, which processes them and fires out two
values – the class and the score.
The score represents the quality of the current
parse, and the class represents an encoding
of a structure in the current parse.
This is the point where the net starts the
recursion.

Korean: 
한 단어를 받는 대신에요.
두 번째 Leaf 그룹은 문장의 다음 단어를 입력받습니다.
이 시점에서,
이 Root 그룹은 세 단어 길이의 파스에 대한 Score를 내놓게 됩니다.
이러한 과정은 모든 단어가 입력될 때 까지 계속됩니다.
그러면 넷은, 모든 단어가 포함된 파스 트리를 포함하게 됩니다.
이 예는 단순하지만, RNTNs의 주요 개념을 담고 있습니다.
그러나 실무에서는,
보통, 더 복잡한 회귀 과정을 거치게 됩니다.
두 번째 Leaf 그룹에 문장의 바로 다음 단어를 받는 것이 아니라,
RNTNs는 남아있는 모든 단어를 받아들이게 됩니다.
그리고, 결과적으로
벡터들은 자신의 하위 파스(Sub-Parse) 구조를 표현하게 됩니다.
이 과정을 매번 반복함으로써,
넷은 모든 가능한 구문적 파스에 대한 
분석과 스코어링을 할 수 있습니다.
숨겨진 계층적 구조를 가진 데이터를 다뤄보신 적 있나요?
코멘트로 경험을 공유해주세요!

Thai: 
ตอนนี้ได้รับการกระจายปัจจุบันมา
แทนที่จะเป็นคำเดี่ยวๆ กลุ่มใบที่สองได้รับ
คำต่อไปในประโยค ณ จุดนี้ กลุ่มราก
จะส่งออกค่าคะแนน
ของการกระจายที่มีคำสามคำ กระบวนการนี้
จะเป็นต่อไปกระทั่งใช้ค่านำเข้าทั้งหมด
และเน็ตมีต้นไม้การกระจายคำที่มีทุกคำอยู่
ตัวอย่างง่ายๆ นี้แสดงแนวคิดหลักเบื้องหลัง RNTN
แต่ในการใช้จริง
เรามักเจอกระบวนการเรียกซ้ำที่ซับซ้อนกว่านี้
แทนที่จะใช้คำต่อไปใน
ประโยคสำหรับกลุ่มใบที่สอง
RNTN ต้องลองคำต่อไป แล้วก็
สุดท้ายเป็นเวกเตอร์ที่แทนการกระจายย่อยทั้งหมด
เมื่อทำเช่นนี้ทุกขั้นในกระบวนการ
เรียกซ้ำ เน็ตจะสามารถวิเคราะห์ -- และให้คะแนน
-- การกระจายคำที่เป็นไปได้ทั้งหมด
 
คุณเคยต้องทำงานกับข้อมูลที่รูปแบบพื้นฐาน
มีโครงสร้างชั้นอย่างนี้ไหม?

English: 
At the next step, the first leaf group now
receives the current parse, rather than a
single word.
The second leaf group receives the next word
in the sentence.
At this point, the root group would output
the score of a parse that is three words long.
This continues until all the inputs are used
up, and the net has a parse tree with every
single word included.
This simplified example illustrates the main
idea behind an RNTN; but in a practical application,
we typically encounter more complex recursive
processes.
Rather than use the next word in the sentence
for the second leaf group, an RNTN would try
all of the next words, and eventually, vectors
that represent entire sub-parses.
By doing this at every step of the recursive
process, the net is able to analyze – and
score – every possible syntactic parse.
Have you ever had to work with data where
the underlying patterns were hierarchical?

English: 
Please comment and let us know what you learned.
Shown here are three possible parse trees
for the same sentence.
To pick the best one, the net relies on the
score value produced by the root group.
By using this score to select the best substructure
at each step of the recursive process, the
net will produce the highest-scoring parse
as its final output.
Once the net has the final structure, it backtracks
through the parse tree in order to figure
out the right grammatical label for each part
of the sentence.
Here, it does that one first and labels it
as a noun phrase.
Then it works on this, and you get a verb
phrase.
It then works its way up, and when it reaches
the top, it adds a special label that signifies
the beginning of the parse structure.
RNTNs are trained with backpropagation by
comparing the predicted sentence structure
with the proper sentence structure obtained
from a set of labelled training data.

Korean: 
여기 보이는 것은, 같은 문장에 대한
세 가지 다른 파스 트리입니다.
가장 좋은 것을 고르기 위해서,
넷은 Root 그룹이 내놓는 스코어 값에 의존하게 됩니다.
이 스코어 값으로 매 반복마다 가장 좋은 하위 구조를 선택합니다.
그러면 넷은 결국 가장 스코어가 높은 파스를 최종 결과로 내놓습니다.
일단 넷이 최종 구조를 내놓은 다음에는,
파스 트리를 거꾸로 내려가며
문장의 각 부분마다 올바른 문법 요소를 배정합니다.
여기에서는 이 부분을 명사 부분으로 배정했습니다.
그리고 다음 부분에서는,
동사구를 배정했습니다.
그리고 트리를 따라 올라가서 꼭대기에 도달하면,
파스 구조의 시작을 의미하는 특별한 이름을 붙여줍니다.
RNTNs은 역전파를 통해서 학습됩니다.
예측된 문장 구조를 레이블 된 
훈련 데이터 셋의 적절한 문장 구조와 비교함으로써요.
학습된 후에는,

Thai: 
กรุณาคอมเมนต์และบอกว่าคุณเรียนรู้อะไรบ้าง
ที่แสดงตรงนี้ คือต้นไม้การกระจายที่เป็นไป
จากประโยคเดียวกัน เพื่อเลือกอันที่ดีที่สุด
เน็ตใช้ค่าคะแนนที่สร้างจากกลุ่มราก
เมื่อใช้คะแนนนี้
เลือกโครงสร้าย่อยที่ดีที่สุดในแต่ละขั้น
ของกระบวนการเรียกซ้ำ เน็ตจะสร้าง
การกระจายที่คะแนนสูงสุด เป็นค่าส่งออกสุดท้าย
เมื่อเน็ตได้โครงสร้างสุดท้ายแล้ว มันจะ
ย้อนกลับผ่านต้นไม้การกระจายเพื่อหา
ค่ากำกับทางไวยากรณ์ที่ถูกต้องสำหรับ
ประโยคแต่ละส่วน ตรงนี้ มันทำอันแรก
และกำกับมันเป็นวลีคำนาม แล้วมันทำอันนี้
คุณได้วลีกริยา แล้ว
มันก็ไล่ขึ้นไป เมื่อมันมาถึงข้างบน
มันเเพิ่มค่ากำกับพิเศษที่แสดง
ว่าเป็นชุดเริ่มโครงสร้างการกระจาย
RNTN ถูกเทรนด้วย backpropagation
โดยเปรียบเทียบโครงสร้างประโยคที่ทำนาย
กับโครงสร้างประโยคจริงที่ได้จาก
ข้อมูลสำหรับเทรนที่มีค่ากำกับเรียบร้อย

English: 
Once trained, the net will give a higher score
to structures that are more similar to the
parse trees that it saw in training.
RNTNs are used in natural language processing
for both syntactic parsing and sentiment analysis.
They are also used to parse images, typically
when an image contains a scene with many different
components.
In the next video, we’ll take a closer look
at the many applications of Deep Learning.

Thai: 
เมื่อเทรนแล้ว เน็ตจะให้คะแนนสูงกับ
โครงสร้างที่คล้ายกับ
ต้นไม้การกระจายที่เห็นระหว่างการเทรน
RNTN ถูกใช้ใน natural language processing
ทั้งใน syntactic parsing และ sentiment analysis
พวกมันยังใช้กระจายภาพ เวลาภาพมีฉากหลาย
องค์ประกอบ
ในวิดีโอหน้า เราจะดูการประยุกต์ใช้
Deep Learning อย่างละเอียดกัน

Korean: 
넷은 자신이 학습한 것과 비슷한 구조를 가진 
파스 트리에 더 높은 스코어를 줍니다.
RNTNs은 자연어 처리에 사용됩니다.
구문 분석(Syntactic parsing)과 
감성 분석(Sentiment analysis) 모두에 쓰이죠.
이미지를 파싱 하는데도 사용할 수 있습니다.
보통, 배경과 여러 다른 사물을 포함한 이미지에 쓰입니다.
다음 영상에서는,
딥 러닝의 많은 응용 분야에 대해서 알아볼게요.
한국어 자막 번역
 최준식 (leichoi91@gmail.com)
