Convolutional Neural NetworksMONDAY, FEBRUARY 24, 2014In the previous  การแปล - Convolutional Neural NetworksMONDAY, FEBRUARY 24, 2014In the previous  ไทย วิธีการพูด

Convolutional Neural NetworksMONDAY

Convolutional Neural Networks
MONDAY, FEBRUARY 24, 2014
In the previous post, we figured out how to do forward and backward propagation to compute the gradient for fully-connected neural networks, and used those algorithms to derive the Hessian-vector product algorithm for a fully connected neural network.
Next, let's figure out how to do the exact same thing for convolutional neural networks. While the mathematical theory should be exactly the same, the actual derivation will be slightly more complex due to the architecture of convolutional neural networks.
Convolutional Neural Networks
First, let's go over out convolutional neural network architecture. There are several variations on this architecture; the choices we make are fairly arbitrary. However, the algorithms will be very similar for all variations, and their derivations will look very similar.
A convolutional neural network consists of several layers. These layers can be of three types:
• Convolutional: Convolutional layers consist of a rectangular grid of neurons. It requires that the previous layer also be a rectangular grid of neurons. Each neuron takes inputs from a rectangular section of the previous layer; the weights for this rectangular section are the same for each neuron in the convolutional layer. Thus, the convolutional layer is just an image convolution of the previous layer, where the weights specify the convolution filter.
In addition, there may be several grids in each convolutional layer; each grid takes inputs from all the grids in the previous layer, using potentially different filters.
• Max-Pooling: After each convolutional layer, there may be a pooling layer. The pooling layer takes small rectangular blocks from the convolutional layer and subsamples it to produce a single output from that block. There are several ways to do this pooling, such as taking the average or the maximum, or a learned linear combination of the neurons in the block. Our pooling layers will always be max-pooling layers; that is, they take the maximum of the block they are pooling.
• Fully-Connected: Finally, after several convolutional and max pooling layers, the high-level reasoning in the neural network is done via fully connected layers. A fully connected layer takes all neurons in the previous layer (be it fully connected, pooling, or convolutional) and connects it to every single neuron it has. Fully connected layers are not spatially located anymore (you can visualize them as one-dimensional), so there can be no convolutional layers after a fully connected layer.
The resulting neural network will look like this (LeNet):
Note that we are not really constrained to two-dimensional convolutional neural networks. We can in the exact same way build one- or three- dimensional convolutional neural networks; our filters will just become appropriately dimensioned, and our pooling layers will change dimension as well. We may, for instance, want to use one-dimensional convolutional nets on audio or three-dimensional nets on MRI data.
Now that we've described the structure of our neural network, let's work through forward and backward propagation to do prediction and gradient computations in these neural networks.
Forward Propagation
Our neural networks now have three types of layers, as defined above. The forward and backward propagations will differ depending on what layer we're propagating through. We've already talked about fully connected networks in the previous post, so we'll just look at the convolutional layers and the max-pooling layers.
Convolutional Layers
Suppose that we have some N×N square neuron layer which is followed by our convolutional layer. If we use an m×m filter ω, our convolutional layer output will be of size (N−m+1)×(N−m+1). In order to compute the pre-nonlinearity input to some unit xℓijin our layer, we need to sum up the contributions (weighted by the filter components) from the previous layer cells:
xℓij=∑a=0m−1∑b=0m−1ωabyℓ−1(i+a)(j+b).
This is just a convolution, which we can express in Matlab via
conv2(x, w, 'valid')
Then, the convolutional layer applies its nonlinearity:
yℓij=σ(xℓij).
Max-Pooling Layers
The max-pooling layers are quite simple, and do no learning themselves. They simply take some k×k region and output a single value, which is the maximum in that region. For instance, if their input layer is a N×N layer, they will then output a Nk×Nk layer, as each k×k block is reduced to just a single value via the max function.
Backward Propagation
Next, let's derive the backward propagation algorithms for these two layer types.
Convolutional Layers
Let's assume that we have some error function, E, and we know the error values at our convolutional layer. What, then, are the error values at the layer before it, and what is the gradient for each weight in the convolutional layer?
Note that the error we know and that we need to compute for the previous layer is the partial of Ewith respect to each neuron output (∂E∂yℓij). Let's first figure out what the gradient component is for each weight by applying the chain rule. Note that in the chain rule, we must sum the contributions of all expressions in which the variable occurs.
∂E∂ωab=∑i=0N−m∑j=0N−m∂E∂xℓij∂xℓij∂ωab=∑i=0N−m∑j=0N−m∂E∂xℓijyℓ−1(i+a)(j+b)
In this case, we must sum over all xℓij expressions in which ωab occurs. (This corresponds to weight-sharing in the neural network!) Note that we know that ∂xℓij∂ωab=yℓ−1(i+a)(j+b), just by looking at the forward propagation equations.
In order to compute the gradient, we need to know the values ∂E∂xℓij (which are often called "deltas"). The deltas are fairly straightforward to compute, once more using the chain rule:
∂E∂xℓij=∂E∂yℓij∂yℓij∂xℓij=∂E∂yℓij∂∂xℓij(σ(xℓij))=∂E∂yℓijσ′(xℓij)
As we can see, since we already know the error at the current layer ∂E∂yℓij, we can very easily compute the deltas ∂E∂xℓij at the current layer by just using the derivative of the activation function, σ′(x). Since we know the errors at the current layer, we now have everything we need to compute the gradient with respect to the weights used by this convolutional layer.
In addition to compute the weights for this convolutional layer, we need to propagate errors back to the previous layer. We can once more use the chain rule:
∂E∂yℓ−1ij=∑a=0m−1∑b=0m−1∂E∂xℓ(i−a)(j−b)∂xℓ(i−a)(j−b)∂yℓ−1ij=∑a=0m−1∑b=0m−1∂E∂xℓ(i−a)(j−b)ωab
Looking back at the forward propagation equations, we can tell that ∂xℓ(i−a)(j−b)∂yℓ−1ij=ωab. This gives us the above value for the error at the previous layer. As we can see, that looks slightly like a convolution! We have our filter ω being applied somehow to the layer; however, instead of having x(i+a)(j+b) we have x(i−a)(j−b). In addition, note that the expression above only makes sense for points that are at least m away from the top and left edges. In order to fix this, we must pad the top and left edges with zeros. If we do that, then this is simply a convolution using ω which has been flipped along both axes!
Max-Pooling Layers
As noted earlier, the max-pooling layers do not actually do any learning themselves. Instead, then reduce the size of the problem by introducing sparseness. In forward propagation, k×k blocks are reduced to a single value. Then, this single value acquires an error computed from backwards propagation from the previous layer. This error is then just forwarded to the place where it came from. Since it only came from one place in the k×k block, the backpropagated errors from max-pooling layers are rather sparse.
Conclusion
Convolutional neural networks are an architecturally different way of processing dimensioned and ordered data. Instead of assuming that the location of the data in the input is irrelevant (as fully connected layers do), convolutional and max pooling layers enforce weight sharing translationally. This models the way the human visual cortex works, and has been shown to work incredibly well for object recognition and a number of other tasks. We can learn convolutional networks through traditional stochastic gradient descent; in addition, we could apply the Rv{⋅} operator from the previous post to convolutional network gradient computation to get a Hessian-vector product algorithm, which would enable use to use Hessian-free optimization instead.


0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
เครือข่ายประสาท convolutionalวันจันทร์ 24 กุมภาพันธ์ 2014ในโพสต์ก่อนหน้านี้ เราคิดว่าวิธีการทำงานไปข้างหน้า และเผยแพร่ย้อนหลังจะคำนวณไล่ระดับสีสำหรับเชื่อมต่อครบครันข่ายประสาท และใช้อัลกอริทึมที่ได้รับอัลกอริทึมผลิตภัณฑ์กระสอบเวกเตอร์สำหรับเครือข่ายประสาทเชื่อมต่อทั้งหมดถัดไป ลองคิดหาวิธีการทำสิ่งเดียวกันแน่นอนสำหรับเครือข่ายประสาท convolutional ในขณะที่ทฤษฎีทางคณิตศาสตร์ควรจะตรงเดียวกัน มาจริงจะซับซ้อนกว่าเล็กน้อยเนื่องจากสถาปัตยกรรมของเครือข่ายประสาท convolutionalเครือข่ายประสาท convolutionalครั้งแรก ลองไปผ่านออกสถาปัตยกรรมโครงข่ายประสาท convolutional มีหลายรูปแบบบนสถาปัตยกรรมนี้ ตัวเลือกที่เราทำได้ค่อนข้างกำหนด อย่างไรก็ตาม อัลกอริทึมจะคล้ายกันมากสำหรับทั้งหมด และรากศัพท์ของพวกเขาจะมีลักษณะคล้ายกันมากConvolutional เครือข่ายประสาทประกอบด้วยหลายชั้น ชั้นเหล่านี้สามารถมีสามชนิด:• Convolutional: ชั้น Convolutional ประกอบด้วยตารางสี่เหลี่ยมของ neurons ต้องที่ชั้นก่อนหน้ายังเป็นตารางสี่เหลี่ยมของ neurons เซลล์ประสาทแต่ละใช้อินพุตจากส่วนสี่เหลี่ยมของชั้นก่อนหน้า น้ำหนักแบบสี่เหลี่ยมเหมือนกันสำหรับแต่ละเซลล์ประสาทในชั้น convolutional ดังนั้น ชั้น convolutional เป็น convolution เพียงรูปใช้เป็นคนของชั้นก่อนหน้านี้ ซึ่งน้ำหนักระบุตัว convolutionนอกจากนี้ อาจจะมีหลายกริดในแต่ละชั้น convolutional แต่ละตารางใช้อินพุตจากกริดทั้งหมดในชั้นก่อนหน้า การใช้ตัวกรองที่อาจแตกต่างกัน•ร่วมกันสูงสุด: หลังจากแต่ละชั้น convolutional อาจมีชั้นการทำพูลเก็บการ ชั้นทำพูลเก็บการใช้บล็อกสี่เหลี่ยมขนาดเล็กจากชั้นที่ convolutional และ subsamples เพื่อผลิตผลผลิตจากเดียว มีหลายวิธีการนี้ร่วมกัน เช่นมีค่าเฉลี่ย หรือสูงสุด หรือเรียนรู้เชิงเส้นใช้ neurons ที่ในบล็อค ชั้นทำพูลเก็บของเรามักจะสูงสุดร่วมกันชั้น นั่นคือ จะสูงสุดช่วงที่พวกเขามีร่วมกัน•เชื่อมต่อทั้งหมด: สุดท้าย หลังหลาย convolutional และสูงสุดร่วมชั้น เหตุผลระดับสูงในเครือข่ายประสาทจะกระทำผ่านทางชั้นเชื่อมต่อทั้งหมด ชั้นเชื่อมต่อครบครันใช้ neurons ทั้งหมดในชั้นก่อนหน้านี้ (ไม่ว่าจะเป็นทั้งหมดเชื่อมต่อ ทำพูลเก็บ หรือ convolutional) และเชื่อมต่อกับเซลล์ประสาททุกเดียวที่มี ชั้นเชื่อมต่อครบครันอยู่ไม่ spatially อีกต่อไป (คุณสามารถเห็นภาพได้เป็น one-dimensional), เพื่อให้สามารถมีชั้นไม่ convolutional หลังชั้นเชื่อมต่อทั้งหมดได้เครือข่ายประสาทผลจะมีลักษณะเช่นนี้ (LeNet): จริง ๆ เหตุที่เราไม่จำกัดเครือข่ายประสาท convolutional สอง เราสามารถแน่นอนเดียวสร้างหนึ่งหรือสามมิติ convolutional ประสาทเครือข่าย ตัวกรองของเราจะเพียงเป็นสม dimensioned และชั้นการทำพูลเก็บของเราจะเปลี่ยนขนาดเช่น เราอาจ เช่น ต้องใช้มุ้ง one-dimensional convolutional บนตาข่ายสามมิติ หรือเสียงข้อมูล MRIหลังจากที่เราได้อธิบายโครงสร้างของโครงข่ายประสาทของเรา ลองทำงานผ่านไปข้างหน้า และย้อนหลังเผยแพร่การพยากรณ์และการไล่ระดับสีหนึ่งในเครือข่ายประสาทเหล่านี้เผยแพร่ไปข้างหน้าเครือข่ายประสาทของเราตอนนี้มีสามชนิดของชั้น ตามที่กำหนดไว้ข้างต้น Propagations ไปข้างหน้า และย้อนหลังจะแตกต่างขึ้นต่อบนชั้นอะไรเรากำลังเผยแพร่ผ่าน เราได้พูดคุยกันแล้วเกี่ยวกับเครือข่ายที่เชื่อมต่อครบครันในโพสต์ก่อนหน้านี้ ดังนั้นเราจะมองเพียงที่ชั้น convolutional และชั้นสูงสุดร่วมกันชั้น convolutionalสมมติว่า เรามีชั้นบางเซลล์ประสาทขนาด N × N ที่ตามชั้นของเรา convolutional ถ้าเราใช้ตัว m × m กรองω ผลผลิตชั้น convolutional ของเราจะเป็นขนาด (N−m+1)×(N−m+1) คำนวณ nonlinearity ก่อนป้อนเข้าหน่วย xℓijin บางชั้นของเรา เราต้องการรวมการจัดสรร (ถ่วงน้ำหนัก โดยคอมโพเนนต์ของตัวกรอง) จากเซลล์ชั้นก่อนหน้านี้:xℓij=∑a=0m−1∑b=0m−1ωabyℓ−1(i+a)(j+b)นี้เป็นเพียงแบบ convolution ซึ่งเราสามารถที่แสดงใน Matlab ผ่านconv2 (x, w 'ถูกต้อง')แล้ว ชั้น convolutional ใช้ของ nonlinearity:yℓij=σ(xℓij)ชั้นสูงสุดร่วมกันชั้นสูงสุดร่วมกันได้อย่างมาก และทำไม่เรียนรู้ด้วยตนเอง พวกเขาก็ใช้บาง k × k ภูมิภาค และผลค่าเดียว ซึ่งเป็นค่าสูงสุดในภูมิภาคที่ ตัวอย่าง ถ้าของชั้นอินพุต ชั้น N × N พวกเขาจะแล้วผลซื้อ Nk Nk ชั้น เป็นแต่ละบล็อค k × k จะลดลงเพียงค่าเดียวผ่านการทำงานสูงสุดเผยแพร่ย้อนหลังถัดไป ลองมาอัลกอริทึมเผยแพร่ย้อนหลังสำหรับทั้งสองชั้นชนิดชั้น convolutionalสมมติว่า เรามีบางข้อผิดพลาดฟังก์ชัน E และเรารู้ค่าความผิดพลาดที่ชั้นของเรา convolutional อะไร แล้ว มีค่าข้อผิดพลาดที่ชั้นก่อน และอะไรคือ ระดับสีน้ำหนักแต่ละชั้น convolutionalโปรดสังเกตว่า ข้อผิดพลาดที่เรารู้ และเราจำเป็นต้องคำนวณสำหรับชั้นก่อนหน้านี้บางส่วนของ Ewith เกี่ยวกับผลผลิตในแต่ละเซลล์ประสาท (∂E∂yℓij) ลองครั้งแรกคิดหาสิ่งที่คอมโพเนนต์การไล่ระดับสีสำหรับแต่ละน้ำหนักโดยใช้กฎลูกโซ่ โปรดสังเกตว่า ในกฎลูกโซ่ เราต้องรวมผลงานของนิพจน์ทั้งหมดใน ตัวแปรเกิดขึ้น∂E∂ωab=∑i=0N−m∑j=0N−m∂E∂xℓij∂xℓij∂ωab=∑i=0N−m∑j=0N−m∂E∂xℓijyℓ−1(i+a)(j+b)ในกรณีนี้ เราต้องรวมกว่า xℓij นิพจน์ทั้งหมดใน ωab ที่เกิดขึ้น (เท่ากับน้ำหนักร่วมในเครือข่ายประสาท) หมายเหตุที่เรารู้ว่า ∂xℓij∂ωab=yℓ−1(i+a)(j+b) โดยการดูที่สมการแพร่กระจายไปข้างหน้าการคำนวณระดับสี เราต้องรู้ ∂E∂xℓij ค่า (ซึ่งมักเรียกว่า "deltas") Deltas จะค่อนข้างตรงไปตรงมาการคำนวณ การใช้กฎลูกโซ่อีกครั้ง:∂E∂xℓij=∂E∂yℓij∂yℓij∂xℓij=∂E∂yℓij∂∂xℓij(σ(xℓij))=∂E∂yℓijσ′(xℓij)เราสามารถดู เนื่องจากเราได้รู้ข้อผิดพลาดที่ ∂E∂yℓij ชั้นปัจจุบันอยู่แล้ว เราได้อย่างง่ายดายมากสามารถคำนวณ ∂E∂xℓij deltas ที่ชั้นปัจจุบัน โดยใช้อนุพันธ์ของฟังก์ชันการเรียกใช้ σ′(x) เนื่องจากเรารู้ว่าข้อผิดพลาดในชั้นปัจจุบัน เรามีทุกอย่างที่เราต้องการจะคำนวณไล่ระดับสีกับน้ำหนักที่ใช้ชั้น convolutional นี้นอกจากนี้ การคำนวณน้ำหนักสำหรับชั้นนี้ convolutional เราได้แพร่กระจายข้อผิดพลาดกลับไปชั้นก่อนหน้านี้ เราสามารถใช้กฎลูกโซ่อีกครั้ง:Ωab ∂E∂yℓ−1ij=∑a=0m−1∑b=0m−1∂E∂xℓ(i−a)(j−b)∂xℓ(i−a)(j−b)∂yℓ−1ij=∑a=0m−1∑b=0m−1∂E∂xℓ(i−a) (j−b)มองไปที่สมการแพร่กระจายไปข้างหน้า เราสามารถบอกที่ ∂yℓ−1ij ∂xℓ(i−a) (j−b) = ωab นี้ทำให้เราค่าข้างต้นสำหรับข้อผิดพลาดที่ชั้นก่อนหน้านี้ เราสามารถดู ที่ดูเหมือนเล็กน้อยแบบ convolution เรามีωกรองเราจะใช้อย่างใดชั้น อย่างไรก็ตาม แทนที่จะให้เราได้ x(i−a)(j−b) x(i+a)(j+b) นอกจากนี้ โปรดสังเกตว่า นิพจน์ดังกล่าวเหมาะสมสำหรับจุดที่อยู่ใน m อย่างน้อยห่างจากขอบด้านบน และซ้าย เท่านั้น เพื่อแก้ไขปัญหานี้ เราต้องผัดขอบด้านบน และซ้าย มีเลขศูนย์ เราทำที่ แล้วนี้ว่า convolution เพียงใช้ωซึ่งมีการพลิกตามแนวแกนทั้งสองชั้นสูงสุดร่วมกันตามที่ระบุไว้ก่อนหน้านี้ ชั้นสูงสุดร่วมกันจริงไม่มีการเรียนรู้ด้วยตนเอง แทน แล้วลดขนาดของปัญหา โดยการแนะนำ sparseness ในการเผยแพร่ไปข้างหน้า บล็อก k × k จะลดลงเป็นค่าเดียว แล้ว ค่าเดียวนี้ได้ฝึกฝนผิดคำนวณจากย้อนหลังเผยแพร่จากชั้นก่อนหน้านี้ ข้อผิดพลาดนี้ถูกแล้วเพียงแค่ส่งต่อไปมันมาจากไหน ตั้งแต่นั้นมาจากบล็อก k × k ข้อผิดพลาด backpropagated จากชั้นสูงสุดร่วมกันอยู่ค่อนข้างห่างบทสรุปเครือข่ายประสาท convolutional เป็นวิธีนั่งต่าง ๆ ของการประมวลผล dimensioned และข้อมูลการสั่งซื้อ แทนสมมติว่าตำแหน่งของข้อมูลในการป้อนข้อมูลที่มีความเกี่ยวข้อง (เป็นชั้นที่เชื่อมต่อทั้งหมดโด), convolutional และสูงสุดชั้นทำพูลเก็บบังคับใช้ร่วมกัน translationally น้ำหนัก นี้รุ่นแบบคอร์เทกซ์ที่ภาพบุคคลงาน และจะทำงานดีอย่างเหลือเชื่อสำหรับการรู้จำวัตถุและจำนวนงานอื่น ๆ เราสามารถเรียนรู้เครือข่าย convolutional ผ่านโคตรแบบเฟ้นสุ่มไล่ระดับสีแบบดั้งเดิม นอกจากนั้น เราสามารถใช้ Rv {⋅} ตัวดำเนินการจากโพสต์ก่อนหน้านี้จะคำนวณไล่ระดับเครือข่าย convolutional จะเป็นกระสอบของเวกเตอร์ผลิตภัณฑ์อัลกอริทึม ซึ่งจะช่วยให้เพิ่มประสิทธิภาพการใช้ใช้กระสอบฟรีแทน
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
Convolutional
โครงข่ายประสาทจันทร์24 กุมภาพันธ์, 2014
ในบทความก่อนหน้านี้เราคิดออกว่าจะทำไปข้างหน้าและการขยายพันธุ์ย้อนกลับในการคำนวณทางลาดสำหรับเต็มที่ที่เชื่อมต่อเครือข่ายประสาทและใช้ขั้นตอนวิธีการเหล่านั้นจะได้รับจากอัลกอริทึมผลิตภัณฑ์รัฐเวกเตอร์สำหรับเต็มที่ การเชื่อมต่อเครือข่ายประสาท.
ถัดไปให้คิดออกว่าจะทำสิ่งเดียวที่แน่นอนสำหรับเครือข่ายประสาทสับสน ในขณะที่ทฤษฎีทางคณิตศาสตร์ควรจะตรงเดียวกันมาที่เกิดขึ้นจริงจะมีเพียงเล็กน้อยที่ซับซ้อนมากขึ้นอันเนื่องมาจากสถาปัตยกรรมเครือข่ายประสาทสับสน.
Convolutional
โครงข่ายประสาทอันดับแรกให้ออกไปกว่าสถาปัตยกรรมเครือข่ายประสาทสับสน มีหลายรูปแบบสถาปัตยกรรมนี้; เลือกที่เราทำมีความเป็นธรรมโดยพลการ แต่ขั้นตอนวิธีการจะคล้ายกันมากสำหรับรูปแบบทั้งหมดและการพิสูจน์ของพวกเขาจะมีลักษณะที่คล้ายกันมาก.
เครือข่ายประสาท convolutional ประกอบด้วยหลายชั้น ชั้นเหล่านี้สามารถเป็นสามประเภท:
• Convolutional: ชั้น Convolutional ประกอบด้วยตารางสี่เหลี่ยมของเซลล์ประสาท มันต้องมีที่ชั้นก่อนหน้านี้ยังเป็นตารางสี่เหลี่ยมของเซลล์ประสาท เซลล์ประสาทแต่ละใช้ปัจจัยการผลิตจากส่วนสี่เหลี่ยมของชั้นก่อนหน้านี้; น้ำหนักส่วนสี่เหลี่ยมนี้จะเหมือนกันสำหรับเซลล์ประสาทในชั้น convolutional แต่ละ ดังนั้นชั้น convolutional เป็นเพียงบิดภาพของชั้นก่อนหน้านี้ที่ระบุน้ำหนักกรองบิด.
นอกจากนี้อาจจะมีเนื้อที่หลายแห่งในแต่ละชั้น convolutional; ใช้เวลาในแต่ละตารางปัจจัยการผลิตจากกริดทั้งหมดที่อยู่ในชั้นที่ผ่านมาโดยใช้ตัวกรองที่แตกต่างกันที่อาจเกิดขึ้น.
• Max-Pooling: หลังจากที่แต่ละชั้น convolutional อาจจะมีชั้นร่วมกัน ชั้นร่วมกันใช้เวลาบล็อกสี่เหลี่ยมเล็ก ๆ จากชั้นสับสนและ subsamples ในการผลิตเอาท์พุทเดียวจากบล็อกที่ มีหลายวิธีที่จะทำร่วมกันนี้เช่นการใช้ค่าเฉลี่ยหรือสูงสุดหรือรวมกันได้เรียนรู้เชิงเส้นของเซลล์ประสาทในบล็อกเป็น ชั้นร่วมกันของเราจะเป็นชั้นสูงสุดร่วมกัน; นั่นคือพวกเขาใช้เวลาสูงสุดของบล็อกที่พวกเขาจะร่วมกัน.
•พร้อมกัน: ในที่สุดหลังจากที่หลายความสับสนและชั้นสูงสุดร่วมกันที่เหตุผลในระดับสูงในเครือข่ายประสาทจะทำผ่านชั้นที่เชื่อมต่ออย่างเต็มที่ ชั้นที่เชื่อมต่อได้อย่างเต็มที่ใช้เวลาทุกเซลล์ในชั้นก่อนหน้า (ไม่ว่าจะเป็นการเชื่อมต่ออย่างเต็มที่รวมกำไรหรือความสับสน) และเชื่อมต่อไปยังทุกเซลล์ประสาทเดียวก็มี ครบชั้นเชื่อมต่อไม่ได้อยู่ตำแหน่งอีกต่อไป (คุณสามารถเห็นภาพพวกเขาเป็นหนึ่งมิติ) ดังนั้นจะต้องไม่มีชั้นความสับสนหลังจากที่ชั้นเชื่อมต่ออย่างเต็มที่.
เครือข่ายประสาทที่เกิดขึ้นจะมีลักษณะเช่นนี้ (Lenet):
โปรดทราบว่าเราไม่ได้จริงๆ บีบบังคับให้สองมิติเครือข่ายประสาทสับสน เราสามารถไปในทางเดียวกันแน่นอนสร้างหนึ่งหรือสามมิติเครือข่ายประสาทสับสน; กรองของเราก็จะกลายเป็นขนาดที่เหมาะสมและชั้นร่วมกันของเราจะเปลี่ยนมิติเช่นกัน เราอาจยกตัวอย่างเช่นต้องการใช้มุ้ง convolutional หนึ่งมิติในเสียงหรือตาข่ายสามมิติบนข้อมูล MRI.
ตอนนี้เราได้อธิบายโครงสร้างของเครือข่ายประสาทของเราขอทำงานผ่านไปข้างหน้าและการขยายพันธุ์ย้อนกลับที่จะทำการคาดการณ์และการไล่ระดับสี การคำนวณในเครือข่ายประสาทเหล่านี้. ส่งต่อการขยายพันธุ์เครือข่ายของเราประสาทในขณะนี้มีสามประเภทของชั้นตามที่ระบุไว้ข้างต้น ไปข้างหน้าและย้อนกลับการขยายพันธุ์จะแตกต่างกันขึ้นอยู่กับสิ่งที่เรากำลังชั้นแพร่กระจายผ่าน เราได้พูดคุยกันแล้วเกี่ยวกับเครือข่ายที่เชื่อมต่ออย่างเต็มที่ในการโพสต์ก่อนหน้านี้ดังนั้นเราก็จะดูที่ชั้นสับสนและชั้นสูงสุดร่วมกัน. ชั้น Convolutional สมมติว่าเรามีบาง N รยังไม่มีตารางชั้นเซลล์ประสาทซึ่งตามมาด้วยความสับสนของเรา ชั้น ถ้าเราใช้มม. ×กรองωการส่งออกชั้น convolutional ของเราจะมีขนาด (N-m + 1) × (N-m + 1) เพื่อที่จะคำนวณการป้อนข้อมูลก่อนที่จะไม่เป็นเชิงเส้นบางหน่วยxℓijinชั้นของเราเราต้องที่จะสรุปผลงาน (ถ่วงน้ำหนักด้วยส่วนประกอบกรอง) จากเซลล์ชั้นก่อนหน้า: xℓij = = Σa 0m-1Σb = 0m-1ωabyℓ -1 (i + ก) (ญ + ข). นี่เป็นเพียงบิดซึ่งเราสามารถแสดงใน Matlab ผ่านconv2 (x, W, 'ถูกต้อง') จากนั้นชั้น convolutional ใช้ไม่เป็นเชิงเส้นของมันyℓij = σ (xℓij ). ชั้น Max-รวมกำไรชั้นสูงสุดร่วมกันจะค่อนข้างง่ายและไม่เรียนรู้ที่ตัวเองไม่มี พวกเขาเพียงแค่ใช้เวลาบางส่วน k × k ภูมิภาคและการส่งออกค่าเดียวซึ่งเป็นสูงสุดในภูมิภาคที่ ตัวอย่างเช่นถ้าชั้นใส่ของพวกเขาคือ N รชั้นยังไม่มีข้อความที่พวกเขาจะแล้วออกชั้น Nk × Nk เป็น k ×บล็อก k แต่ละคนจะลดลงเหลือเพียงค่าเดียวผ่านฟังก์ชั่นสูงสุด. ย้อนกลับการขยายพันธุ์ถัดไปให้ได้มาซึ่งย้อนหลังขั้นตอนวิธีการขยายพันธุ์สำหรับทั้งสองประเภทชั้น. ชั้น Convolutional สมมติว่าเรามีฟังก์ชั่นข้อผิดพลาดบาง, E, และเรารู้ว่าค่าความผิดพลาดที่ชั้นสับสนของเรา อะไรแล้วมีค่าความผิดพลาดที่ชั้นก่อนที่มันและสิ่งที่เป็นทางลาดสำหรับน้ำหนักในชั้น convolutional แต่ละหรือไม่โปรดทราบว่าข้อผิดพลาดที่เรารู้จักและที่เราต้องคำนวณสำหรับชั้นก่อนหน้านี้เป็นเพียงบางส่วนของการเคารพEwith ไป การส่งออกในแต่ละเซลล์ประสาท (∂E∂yℓij) ให้ร่างแรกของสิ่งที่องค์ประกอบลาดสำหรับแต่ละน้ำหนักโดยการใช้กฎลูกโซ่ ทราบว่าในกฎลูกโซ่ที่เราจะต้องสรุปผลงานทั้งหมดของการแสดงออกซึ่งตัวแปร กรณีนี้เราจะต้องสรุปสำนวนทั้งหมดxℓijที่ωabเกิดขึ้น (นี้สอดคล้องกับน้ำหนักร่วมกันในเครือข่ายประสาท!) โปรดทราบว่าเรารู้ว่า∂xℓij∂ωab = yℓ-1 (i + ก) (ญ + ข) เพียงโดยดูที่สมการการขยายพันธุ์ไปข้างหน้า. เพื่อที่จะคำนวณ การไล่ระดับสีที่เราจำเป็นต้องรู้ค่า∂E∂xℓij (ซึ่งมักจะเรียกว่า "สันดอน") สันดอนที่มีความเป็นธรรมตรงไปตรงมาในการคำนวณอีกครั้งโดยใช้โซ่ เราสามารถมองเห็นตั้งแต่ที่เรารู้อยู่แล้วว่าข้อผิดพลาดที่ชั้น∂E∂yℓijปัจจุบันเราได้อย่างง่ายดายมากสามารถคำนวณสันดอน∂E∂xℓijที่ชั้นปัจจุบันโดยเพียงแค่ใช้ฟังก์ชั่นที่มาของการเปิดใช้งานที่σ '(x) เนื่องจากเรารู้ข้อผิดพลาดที่ชั้นปัจจุบันตอนนี้เรามีทุกอย่างที่เราจำเป็นต้องใช้ในการคำนวณการไล่ระดับสีที่เกี่ยวกับน้ำหนักที่ใช้โดยชั้น convolutional นี้. นอกจากนี้ในการคำนวณน้ำหนักชั้น convolutional นี้เราต้องเพื่อเผยแพร่ข้อผิดพลาดกลับไปที่ ชั้นก่อนหน้า เราสามารถอีกครั้งใช้โซ่ ย้อนกลับไปในสมการการขยายพันธุ์ไปข้างหน้าเราสามารถบอกได้ว่า∂xℓ (i-a) (J-ข) ∂yℓ-1ij = ωab นี้ทำให้เรามีค่าดังกล่าวข้างต้นสำหรับข้อผิดพลาดที่ชั้นก่อนหน้านี้ ในฐานะที่เราสามารถมองเห็นที่มีลักษณะบิดเล็กน้อยเช่นกัน! เรามีกรองของเราωถูกนำมาใช้อย่างใดเพื่อชั้น; แต่แทนที่จะมี x (i + ก) (ญ + ข) เรามี x (i-a) (ญ-B) นอกจากนี้ทราบว่าการแสดงออกดังกล่าวข้างต้นเพียงทำให้รู้สึกสำหรับจุดที่มีอย่างน้อย m ห่างจากขอบบนและด้านซ้าย เพื่อที่จะแก้ไขปัญหานี้เราต้องแผ่นขอบบนและด้านซ้ายด้วยศูนย์ ถ้าเราทำอย่างนั้นแล้วนี้เป็นเพียงบิดโดยใช้ωซึ่งได้รับการพลิกพร้อมทั้งแกน! ชั้น Max-การรวมตามที่ระบุไว้ก่อนหน้านี้ชั้นสูงสุดร่วมกันไม่ได้ทำจริงการเรียนรู้ใดๆ ที่ตัวเอง แต่แล้วลดขนาดของปัญหาที่เกิดขึ้นโดยการแนะนำกระจัดกระจาย ในการขยายพันธุ์ไปข้างหน้า k × k บล็อกจะลดลงค่าเดียว แล้วนี้ค่าเดียวได้รับข้อผิดพลาดจากการคำนวณย้อนกลับจากการขยายพันธุ์ชั้นก่อนหน้านี้ ข้อผิดพลาดนี้แล้วส่งต่อไปเพียงเพื่อให้สถานที่ที่มันมาจาก ตั้งแต่มันมาจากสถานที่แห่งหนึ่งใน k × k บล็อกที่ข้อผิดพลาด backpropagated จากชั้นสูงสุดรวมกำไรค่อนข้างเบาบาง. สรุปเครือข่ายประสาท Convolutional จะเป็นวิธีที่แตกต่างกันของการประมวลผลสถาปัตยกรรมขนาดและสั่งให้ข้อมูล แทนการสมมติว่าตำแหน่งของข้อมูลในการป้อนข้อมูลที่ไม่เกี่ยวข้อง (เป็นชั้นเชื่อมต่ออย่างเต็มที่ทำ) ที่สับสนและชั้นสูงสุดร่วมกันบังคับใช้น้ำหนักแบ่งปัน translationally รุ่นนี้วิธีการที่เยื่อหุ้มสมองภาพของมนุษย์ทำงานและได้รับการแสดงที่จะทำงานได้ดีอย่างเหลือเชื่อสำหรับการรับรู้วัตถุและจำนวนงานอื่น ๆ เราสามารถเรียนรู้เครือข่าย convolutional ผ่านเชื้อสายลาดสุ่มแบบดั้งเดิม นอกจากนี้เราสามารถใช้ Rv {} ⋅ผู้ประกอบการจากการโพสต์ก่อนหน้านี้เพื่อคำนวณการไล่ระดับสี convolutional เครือข่ายที่จะได้รับสินค้าที่มีอัลกอริทึมรัฐเวกเตอร์ซึ่งจะช่วยให้การใช้งานเพื่อเพิ่มประสิทธิภาพการใช้รัฐฟรีแทน






























การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
ขดโครงข่าย
วันจันทร์ที่ 24 กุมภาพันธ์ 2014
ในการโพสต์ก่อนหน้านี้ , เรารู้ว่าจะทำยังไงไปข้างหน้าและข้างหลังขยายพันธุ์เพื่อคำนวณไล่ระดับเพื่อให้เชื่อมต่อเครือข่ายประสาท และใช้อัลกอริทึมนั้น เพื่อให้ได้มาซึ่งผลิตภัณฑ์กระสอบเวกเตอร์ขั้นตอนวิธีสำหรับเต็มเชื่อมต่อโครงข่ายประสาทเทียม
ต่อไป เรามาหาวิธีทำ เหมือนกันสำหรับเครือข่ายประสาทคอน .ในขณะที่ทฤษฎีทางคณิตศาสตร์ควรจะเหมือนกัน ชนิดที่เกิดขึ้นจริงจะซับซ้อนมากขึ้นเล็กน้อย เนื่องจากสถาปัตยกรรมของโครงข่ายประสาทเทียมขดขดเครือข่ายประสาท
.
ก่อนไป ไปออกคอนประสาทเครือข่ายสถาปัตยกรรม มีหลายรูปแบบสถาปัตยกรรมนี้ เราเลือกค่อนข้างโดยพลการ อย่างไรก็ตามอัลกอริทึมจะคล้ายกันมากสำหรับทุกรูปแบบและแหล่งที่มาของพวกเขาจะดูคล้ายกันมาก การขดโครงข่ายประสาทเทียมประกอบด้วยหลายชั้น ชั้นเหล่านี้สามารถสามประเภท :
- คอนคอน : ชั้นประกอบด้วยตารางสี่เหลี่ยมของเซลล์ประสาท ต้องการให้ชั้นก่อนหน้านี้ยังเป็นตารางสี่เหลี่ยมของเซลล์ประสาทแต่ละเซลล์ใช้ปัจจัยการผลิตจากส่วนสี่เหลี่ยมของชั้นก่อนหน้านี้ ; น้ำหนักส่วนสี่เหลี่ยมนี้จะเหมือนกันสำหรับแต่ละเซลล์ประสาทในชั้นคอน . ดังนั้นชั้นขดเป็นเพียงภาพที่ซับซ้อนมากของชั้นก่อนหน้านี้ ซึ่งน้ำหนักที่ระบุตัวกรองที่ซับซ้อนมาก .
นอกจากนี้อาจจะมีหลายตารางในแต่ละคอนชั้น ,แต่ละตารางที่ใช้ปัจจัยการผลิตจากกริดทั้งหมดในชั้นก่อนหน้า ใช้ตัวกรองที่แตกต่างกันอาจ
- แม็กซ์ร่วมกัน : หลังจากที่แต่ละขดชั้น อาจจะต้องมีการวาง โดยการใช้บล็อกสี่เหลี่ยมขนาดเล็กจากชั้นและชั้นคอน subsamples มันผลิตผลลัพธ์เดียวจากบล็อกที่ มีหลายวิธีที่จะทำนี้ว่าจะเช่นการใช้เฉลี่ยหรือสูงสุด หรือเรียนรู้เชิงเส้นการรวมกันของเซลล์ประสาทในบล็อก ของเรารวมชั้นจะสูงสุดการชั้น ; นั่นคือพวกเขาใช้เวลาสูงสุดของบล็อกที่พวกเขาจะร่วมกัน .
- พร้อมการเชื่อมต่อ : ในที่สุดหลังจากหลายขด และสูงสุดรวมชั้น เหตุผลพื้นฐานในเครือข่ายประสาทผ่านเต็มเชื่อมต่อชั้นเต็มเชื่อมต่อเซลล์ประสาทในชั้นชั้นจะใช้เวลาทั้งหมดก่อน ( จะได้ครบ การเชื่อมต่อหรือคอน ) และเชื่อมต่อเข้ากับทุกเซลล์มี เต็มเชื่อมต่อชั้นไม่ได้เปลี่ยนไปอยู่อีก ( คุณสามารถเห็นภาพเป็นมิติเดียว ) ดังนั้นจะไม่มีคอนชั้นหลังเต็มเชื่อมต่อชั้น
ส่งผลให้โครงข่ายประสาทเทียมจะมีลักษณะเช่นนี้ ( เลเนท ) :
โปรดทราบว่าเราไม่ได้บังคับให้สองมิติขดโครงข่ายใยประสาท เราสามารถในวิธีเดียวกันสร้างหนึ่งหรือ 3 มิติ - คอนเครือข่ายประสาท ; ตัวกรองของเราจะกลายเป็น dimensioned อย่างเหมาะสม และการเปลี่ยนมิติของเรา ชั้นจะได้เป็นอย่างดี เราอาจจะ ตัวอย่างต้องการใช้ในคอนในมุ้งมุ้งหรือเสียงสามมิติข้อมูล MRI .
ตอนนี้เราได้อธิบายโครงสร้างของโครงข่ายประสาทของเรา เรามาทำงานผ่านไปข้างหน้าและข้างหลังเพื่อการพยากรณ์และการคำนวณการกระจายในโครงข่ายเหล่านี้

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

คอนสมมติว่าเรามี n × n ตารางเซลล์ชั้นซึ่งจะตามด้วยชั้นคอนของเรา ถ้าเราใช้ตัวกรองω m × m ,ออกเลเยอร์ของเราขดจะขนาด n − 1 ) × ( − 1 ) เพื่อที่จะคำนวณค่าเข้าก่อนบางหน่วย ijin x ℓของเราชั้น เราต้องรวมเงินสมทบ ( ถ่วงน้ำหนักโดยตัวกรององค์ประกอบ ) จากเซลล์ชั้นก่อนหน้า :
x ℓ ij = ∑ = m 0 − 1 ∑ B = m 0 − 1 ω aby ℓ− 1 ( ฉัน ) ( เจ b )
นี่แค่รอยหยักของสมอง ซึ่งเราสามารถแสดงในโปรแกรมผ่าน
conv2 ( x , w ' ถูกต้อง ' )
จากนั้นชั้นของขดใช้ค่า :
Y ℓ ij = σ ( X ℓ ij )

รวมสูงสุดสูงสุดรวมชั้นชั้นจะค่อนข้างง่าย และไม่เรียนรู้ตัวเอง พวกเขาก็เอา k × k ภูมิภาคและออกค่าเดียว ซึ่งสูงสุดในภูมิภาคนั้น ตัวอย่างเช่นถ้าพวกเขาใส่ชั้น n × n ชั้นก็จะออก NK × NK ชั้นเป็นแต่ละ k × k บล็อกจะลดลงไปเพียงครั้งเดียวค่าผ่านทางฟังก์ชัน max .

ไปขยายพันธุ์ต่อไป เรามาสร้างอัลกอริทึมการย้อนหลังทั้งสองชั้น ประเภท ชั้น

คอนสมมติว่าเรามีข้อผิดพลาดบางฟังก์ชัน , E , และเรารู้ว่าค่าความผิดพลาดที่ชั้นคอนของเรา อะไร แล้ว เป็นค่าความผิดพลาดที่ชั้นก่อนและอะไรคือการไล่ระดับสีสำหรับแต่ละน้ำหนักในชั้นคอน ?
ทราบว่าข้อผิดพลาดที่เรารู้และที่เราต้อง หาชั้นก่อนหน้าคือบางส่วนของ ewith เคารพแต่ละเซลล์ประสาทออก ( ∂ E ∂ Y ℓ ij ) ก่อนอื่นหาไล่ระดับเป็นองค์ประกอบสำหรับแต่ละน้ำหนักโดยการใช้โซ่กฎ ทราบว่าในห่วงโซ่ของกฎเราต้องรวมเงินสมทบของการแสดงออกซึ่งในตัวแปรเกิดขึ้น .
∂ E ∂ω AB = = ∑สิ่งประดิษฐ์∑ J = −− M M E ใน∂∂ x ℓ IJ IJ ∂ x ℓ∂ω AB = = ∑สิ่งประดิษฐ์∑ J = −− M M E ใน∂∂ x ℓ ijy ℓ− 1 ( I ) j b )
ในกรณีนี้ เราต้องรวมกว่า X ℓ ij การแสดงออกซึ่งω AB เกิดขึ้น ( ซึ่งตรงกับน้ำหนักร่วมกันในเครือข่ายประสาท ) หมายเหตุ ที่เรารู้ว่า∂ x ℓ ij ∂ω AB = y ℓ− 1 ( I ) j b )ดูจากสมการการแพร่กระจายไปข้างหน้า .
เพื่อคำนวณการไล่ระดับสี เราต้องรู้ค่า∂ E ∂ x ℓ ij ( ซึ่งมักจะเรียกว่า " สันดอน " ) deltas ที่ค่อนข้างตรงไปตรงมาคำนวณอีกครั้งโดยใช้โซ่กฎ :
∂ E ∂ x ℓ ij = ∂ E ∂ Y Y ℓ∂ℓ IJ IJ ∂ x ℓ ij = ∂ E ∂ Y ℓ ij ∂∂ x ℓ ij ( σ ( X ℓ ij ) ) = ∂∂ℓσ′ IJ E Y ( x ℓ ij )
อย่างที่เราเห็นเนื่องจากเราได้ทราบข้อผิดพลาดที่ปัจจุบันชั้น∂ E ∂ Y ℓแอลเจ เราสามารถได้อย่างง่ายดายมากหาสันดอน∂ E ∂ x ℓ ij ในชั้นปัจจุบันโดยใช้อนุพันธ์ของฟังก์ชันการσ′ ( X ) ตั้งแต่เรารู้ว่ามีข้อบกพร่องในชั้นปัจจุบัน ตอนนี้เราได้ทุกอย่างที่เราต้องการคำนวณการต่อน้ำหนักที่ใช้โดยชั้น
คอนนี้นอกจากจะคำนวณน้ำหนักชั้นคอนนี้ เราต้องเผยแพร่ความผิดพลาดกลับมาชั้นก่อนหน้า เราสามารถอีกครั้งใช้โซ่กฎ :
∂ E ∂ Y ℓ− 1ij = ∑ = m 0 − 1 ∑ B = m 0 − 1 ∂ E ∂ x ℓ ( − ( − ) J ) B ∂ x ℓ ( − ( − B ) j ) Y ℓ−∂ 1ij = ∑เป็น = m 0 − 1 ∑ B = m 0 − 1 ∂ E ∂ x ℓ ( − ( − ) J ) B ω AB
มองกลับมาที่สมการการแพร่กระจายไปข้างหน้า เราสามารถบอกได้ว่า∂ x ℓ ( − ( − B ) j ) Y ℓ−∂ 1ij = ω ABนี้จะช่วยให้เราค่าข้างต้นสำหรับข้อผิดพลาดในชั้นก่อนหน้า ขณะที่เราสามารถมองเห็นที่ดูเหมือนเล็กน้อยเช่นม้วน ! เราได้ωกรองของเราถูกใช้อย่างใด เพื่อชั้น แต่แทนที่จะมี X ( i ) j b ) เราได้ x ( − ( − ) ; B ) นอกจากนี้ทราบว่านิพจน์ข้างต้นทำให้รู้สึกสำหรับจุดที่มีอย่างน้อยเมตรจากด้านบนและขอบซ้าย เพื่อแก้ไขปัญหานี้เราต้องขอบแผ่นด้านบนและด้านซ้ายกับศูนย์ ถ้าเราทำอย่างนั้น นี้เป็นเพียงการขดใช้ωซึ่งได้พลิกไปตามแกนทั้งสอง !

รวมสูงสุดชั้นดังที่กล่าวไว้ก่อนหน้านี้ สูงสุดร่วมกัน ชั้นไม่ทำใด ๆ การเรียนรู้ด้วยตนเอง แทน จากนั้นลดขนาดของปัญหาโดยการแนะนำ sparseness . ไปข้างหน้าในการขยายพันธุ์ , k × k บล็อกจะลดลงเป็นค่าเดียว จากนั้นค่าเดียวนี้มีข้อผิดพลาดจากการคำนวณย้อนกลับขยายพันธุ์จากชั้นก่อน ความผิดพลาดนี้ก็ถูกส่งต่อไปยังสถานที่ มันมาจากไหน ตั้งแต่มันมาจากสถานที่หนึ่งใน k × k บล็อก , backpropagated ข้อผิดพลาดจากแม็กซ์รวมเลเยอร์

สรุปเบาบางมากกว่าโครงข่ายประสาทเทียมขดเป็นวิธีแตกต่างกันสถาปัตยกรรมการประมวลผล dimensioned และสั่งให้ข้อมูล แทนสมมติว่าตำแหน่งของข้อมูลในข้อมูลที่ไม่เกี่ยวข้อง ( อย่างที่เชื่อมต่อชั้นทำ ) , คอนและ Max การชั้นบังคับน้ำหนักแบ่งปัน translationally . รุ่นนี้ทางด้าน Visual Cortex ทํางานและมีการแสดงผลงานชิ้นดีให้รับรู้ และจำนวนของงานอื่น ๆ เราสามารถเรียนรู้ผ่านเครือข่ายคอนดั้งเดิมเชื้อสายลาดอ นอกจากนี้เราสามารถใช้กับรถ⋅ } { ผู้ประกอบการจากโพสต์ก่อนหน้าที่จะขดลาดเครือข่ายการคำนวณหากระสอบเวกเตอร์ผลิตภัณฑ์ขั้นตอนวิธีซึ่งจะช่วยให้ใช้งานเพื่อเพิ่มประสิทธิภาพการใช้กระสอบ

ฟรีแทน
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2024 I Love Translation. All reserved.

E-mail: