Jump to content

Artificial neural network

From Simple English Wikipedia, the free encyclopedia
Revision as of 17:41, 3 January 2020 by 7efayounis11 (talk | changes) (Example)

A neural network (also called an ANN or an artificial neural network) is a sort of computer software, inspired by biological neurons. Biological brains are capable of solving difficult problems, but each neuron is only responsible for solving a very small part of the problem. Similarly, a neural network is made up of cells that work together to produce a desired result, although each individual cell is only responsible for solving a small part of the problem. This is one method for creating artificially intelligent programs.

Neural networks are an example of machine learning, where a program can change as it learns to solve a problem. A neural network can be trained and improved with each example, but the larger the neural network, the more examples it needs to perform well—often needing millions or billions of examples in the case of deep learning. الشبكة العصبية و المعروفة ب الشبكة العصبية الإصطناعية هي نوع من برنامج الكومبيوتر المستوحاة من الخلية العصبية البيولوجية .كما أن العقل البيولوجي قادر على حل المشاكل الصعبة ولكن كل خلية عصبية فقط مسؤولة عن حل جزء صغير جدا من المشكلة المثل الشبكة العصبية تتكون من خلايا تعمل مع بعضها بعض لإنتاج نتائج المرغوب بها, ع الرغم أن كل خلية فردية مسؤولة عن حل جزء صغير من المشكلة هذه هي إحدى الطرق لإنشاء برنامج الذكي المصطنع (ويعني قدرة برنامج كمبيوتر أو جهاز على التفكير والتعلم). الشبكات العصبية هي مثال على التعلم الالي حيث يمكن للبرنامج أن يتغير لانه يتعلم حل المشكلة .يمكن تدريب الشبكة العصبية و تحسينها مع كل مثال و لكن اذا كان الشبكة العصبية كبيرة كانت الامثلة التي احتاجها تحتاج لأداء جيد وتعلم أكثر.غالبًا ما تحتاج إلى ملايين أو مليارات من الأمثلة في حالة التعلم العميق

Overview

There are two ways to think of a neural network. First is like a human brain. Second is like a mathematical equation.

A network starts with an input, somewhat like a sensory organ. Information then flows through layers of neurons, where each neuron is connected to many other neurons. If a particular neuron receives enough stimuli, then it sends a message to any other neuron is it connected to through its axon. Similarly, an artificial neural network has an input layer of data, one or more hidden layers of classifiers, and an output layer. Each node in each hidden layer is connected to a node in the next layer. When a node receives information, it sends along some amount of it to the nodes it is connected to. The amount is determined by a mathematical function called an activation function, such as sigmoid or tanh.

هناك طريقتين للتفكر في الشبكة العصبية . أولا هو مثل العقل البشري و ثانيا مثل المعادلات الرياضية تبدا الشبكة بمدخل يشبه العضو الحسي ثم تتدفق المعلومات عبر طبقات من الخلايا العصبية بحيث كل خلية عصبية تتصل الى العديد من خلايا العصبية . إذا تلقت الخلية العصبية المعينة عدد كافي من المحفزات فإنها ترسل رسالة إلى أي خلية عصبية أخرى ، هل هي متصلة من خلال محوارها. بالمثل الشبكات العصبية الإصطناعية تحتوي ع طبقة إدخال من البيانات (input layer) طبقة أو اكثر من طبقات مخفية(Hidden layer) و طبقة المخرجات (Output layer). كل عقدة في كل طبقة المخفية متصلة الى العقدة الموجودة بطبقة التالية عندما العقدة تتلقى المعلومات فإنها ترسل على طول جزء منها إلى العقد التي تتصل بها. يتم تحديدها بواسطة دالة رياضية تسمى وظيفة التنشيط

         .  مثل السيني(Sigmoid) أو (tanh) (Activation Function) ، 


Thinking of a neural network like a mathematical equation, a neural network is simply a list of mathematical operations to be applied to an input. The input and output of each operation is a tensor (or more specifically a vector or matrix). Each pair of layers is connected by a list of weights. Each layer has several tensors stored in it. An individual tensor in a layer is called a node. Each node is connected to some or all of the nodes in the next layer by a weight. Each node also has a list of values called biases. The value of each layer is then the out of the activation function of the values of the current layer (called X) multiplied by the weights.

عند التفكير بالشبكة العصبية مثل المعادلة الرياضية . فإن الشبكة العصبية ببساطة هي قائمة من المعادلات الرياضية التى يتم تطبيقها على المدخلات. المدخلات والمخرجات )()من كل عملية هو( الموتر و توفر إطارًا رياضيًا لحل مشكلات الفيزياء في مجالات مثل المرونة وميكانيكا الموائع والنسبية العامة)  أو( أكثر تحديدا ناقل أو مصفوفة.     

Vector( size, called the magnitude, and a direction.)

                         . و  كل طبقة لديها العديد من التنسورات المخزنة فيه   (Weight)  كل زوج من الطبقات تتصل من خلال قائمة من الأوزان  
   
   يسمى الموتر الفردي في طبقة التي تدعى العقدة. كل عقدة متصلة ببعض أو كل العقد في الطبقة التالية بوزن. كل عقدة لديها أيضا قائمة من القيم تسمى التحيزات 
                                                                                     .  (Biases)


                                                          ثم تكون قيمة كل طبقة هي خارج وظيفة التنشيط لقيم الطبقة الحالية تسمى 
                                                                               (     مضروبة ب الأوزان X )

A cost function is defined for the network. The loss function tries to estimate how well the neural network is doing at its assigned task. Finally, an optimization technique is applied to minimize the output of the cost function by changing the weights and biases of the network. This process is called training. Training is done one small step at a time. After thousands of steps, the network is typically able to do its assigned task pretty well.

   دالة التكلفة يتم تعريفيها للشبكة أو Loss  بحيث أن دالة الخسارة تحاول لتقدير كيف يمكن للشبكة العصبية أن تعمل ومدى أدائها في مهماتها المعينة . يتم تطبيق تقنية التحسين حتى نقلل نواتج دالة التكلفة او Loss Function عن طريق التغيير ب أوزان و التحيزات في الشبكة  هذه العملية تسمى التدريب  يتم التدريب خطوة 
                                . واحدة صغيرة في وقت واحد. بعد آلاف الخطوات ، تكون الشبكة عادةً قادرة على القيام بالمهمة المعينة بشكل جيد

Example

Consider a program that checks whether a person is alive. It checks two things - the pulse, and breath.If a person has either a pulse or is breathing, the program will output 'alive', otherwise, it will output 'dead'. In a program that does not learn over time, this would be written as:

انظر الى البرنامج الذي يفحص ما إذا كان هذا الشخص ع قيد الحياة . يتحقق من شيئين النبض و التنفس إذا كان لدى الشخص إما نبضة أو كان يتنفس فإن البرنامج سيعطي النتائج بإنه على قيد الحياة غير  ذلك سيعطي نتيجة أن توفى
: في برنامج لا يتعلم مع مرور الوقت ، سيتم كتابة هذا على النحو التالي


function isAlive(pulse, breathing) {
    if(pulse || breathing) {
        return true;
    } else {
        return false;
    }
}

A very simple neural network, made of just one neuron that solves the same problem will look like this:

شبكة عصبية بسيطة للغاية ، مؤلفة من خلية عصبية واحدة فقط لكي تحل نفس المشكلة ، ستبدو كما يلي

Single neuron which takes the values of pulse (true/false) and breathing (true/false), and outputs value of alive (true/false).

The values of pulse, breathing, and alive will be either 0 or 1, representing false and true. Thus, if this neuron is given the values (0,1), (1,0) or (1,1), it should output 1, and if it is given (0,0), it should output 0. The neuron does this by applying a simple mathematical operation to the input - it adds whatever values it has been given together, and then adds its own hidden value, which is called a 'bias'. To start with, this hidden value is random, and we adjust it over time if the neuron is not giving us the desired output.

If we add values such as (1,1) together, we might end up with numbers greater than 1, but we want our output to be between 0 and 1! To solve this, we can apply a function which limits our actual output to 0 or 1, even if the result of the neuron's math was not within the range. In more complicated neural networks, we apply a function (such as sigmoid) to the neuron, so that its value will be between 0 or 1 (such as 0.66), and then we pass on this value to the next neuron all the way until we need our output. ستكون قيم النبض و التنفس و أنه على قيد الحياة إما 0 أو 1 والتي تمثل الصح و الخطأ و بالتالي اذا تم إعطاء الخلية العصبية قيم

                                                          (0,1), (1,0) or (1,1) 
                                       0 فإنه يجب أن تكون النتيجة 1 إما لو اعطيت (0,0) فإن النتيجة  

تقوم الخلية العصبية بذلك عن طريق تطبيق مجموعات من العمليات الرياضية إلى المدخلات - إنها تضيف أي قيم تم إعطائها معًا ، ثم تضيف القيمة المخفية الخاصة بها ،

                                                                                     .(Bias)  والتي تسمى الإنحياز          
                 .   بدءا هذه القيمة المخفية عشوائية ، ونحن نقوم بضبطها بمرور الوقت إذا كانت الخلايا العصبية لا تعطينا المخرجات المطلوبة

إذا أضفنا قيم تمثل (1,1) معا فإنه بنهاية ستعطي الناتج الأرقام أكبر من 1 ولكن نحن نريد قيم النواتج بين 0 و 1 . لحل هذه المشكلة نحن نستطيع تطبيق دالة للحد

   وجعل قيمة النتائج أو مخرجات إما 0 او 1 . حتى لو لم تكن نتيجة الرياضيات العصبية ضمن النطاق. في الشبكات العصبية الأكثر تعقيدًا ، نقوم بتطبيق الدالة السيني على خلية العصبية بحيث تكون القيمة بين 0 او 1 (0.66). ثم نمرر هذه القيمة إلى الخلية العصبية التالية على طول الطريق حتى نحن بحاجة لنتائجنا (نصل الى نتائج) .

Sigmoid دالة السيني هي

Learning methods

There are three ways a neural network can learn: supervised learning, unsupervised learning and reinforcement learning. These methods all work by either minimizing or maximizing a cost function, but each one is better at certain tasks.

Recently, a research team from the University of Hertfordshire, UK used reinforcement learning to make an iCub humanoid robot learn to say simple words by babbling.[1]

References

  1. Biever, Celeste. "Baby robot learns first words from human teacher". New Scientist.