MOTOR KONTROLÜNDE AKTĠF ÖĞRENMENĠN KULLANILMASI Onur BATTAL YÜKSEK LĠSANS TEZĠ ELEKTRĠK EĞĠTĠMĠ GAZĠ ÜNĠVERSĠTESĠ FEN BĠLĠMLERĠ ENSTĠTÜSÜ TEMMUZ 2011 ANKARA Onur BATTAL tarafından hazırlanan 'MOTOR KONTROLÜNDE AKTĠF ÖĞRENMENĠN KULLANILMASI' adlı bu tezin Yüksek Lisans tezi olarak uygun olduğunu onaylarım. Yrd. Doç. Dr. Ercan Nurcan YILMAZ ………………………………. Tez DanıĢmanı, Elektrik Eğitimi Anabilim Dalı Bu çalıĢma, jürimiz tarafından oy birliği ile Elektrik Eğitimi Anabilim Dalında Yüksek Lisans tezi olarak kabul edilmiĢtir. Doç. Dr. Recep DEMĠRCĠ ………………………………. Endüstriyel Teknoloji Eğitimi Anabilim Dalı, Gazi Üniversitesi Yrd. Doç. Dr. Ercan Nurcan YILMAZ ………………………………. Elektrik Eğitimi Anabilim Dalı, Gazi Üniversitesi Yrd. Doç. Dr. Ali SAYGIN ………………………………. Elektrik Eğitimi Anabilim Dalı, Gazi Üniversitesi Tarih: 01/07/2011 Bu tez ile G.Ü. Fen Bilimleri Enstitüsü Yönetim Kurulu Yüksek Lisans derecesini onamıĢtır. Prof. Dr. Bilal TOKLU Fen Bilimleri Enstitüsü Müdürü ………………………………. TEZ BĠLDĠRĠMĠ Tez içindeki bütün bilgilerin etik davranıĢ ve akademik kurallar çerçevesinde elde edilerek sunulduğunu, ayrıca tez yazım kurallarına uygun olarak hazırlanan bu çalıĢmada bana ait olmayan her türlü ifade ve bilginin kaynağına eksiksiz atıf yapıldığını bildiririm. Onur BATTAL iv MOTOR KONTROLÜNDE AKTĠF ÖĞRENMENĠN KULLANILMASI (Yüksek Lisans Tezi) Onur BATTAL GAZĠ ÜNĠVERSĠTESĠ FEN BĠLĠMLERĠ ENSTĠTÜSÜ Temmuz 2011 ÖZET GeliĢen teknolojiyle birlikte insanların bilgi ve bilgisayar teknolojilerinden beklentileri giderek farklılaĢmaktadır. Ġlk baĢlarda sadece karmaĢık hesaplamaları yapmak ve bilgi aktarımı için kullanılan bilgisayarlar, artık çeĢitli olaylar karĢısında karar verme ve öğrenebilme yeteneğine sahip olmuĢlardır. Ġnsanların öğrenen ve karar verebilen sistemler üretme isteği, yapay zeka kavramının doğmasına neden olmuĢtur. Bir sistemin tasarlanması ve kontrol edilmesi sistemin modellenmesi ile mümkündür. Zeki sistemler üretmede çok sıkça baĢvurulan yöntemlerden biride Yapay sinir ağlarıdır. Yapay sinir ağları insanın karar verme, iliĢkiler kurma ve öğrenme yeteneklerinin makinelere kazandırılmasını sağlayan matematiksel sinir hücresi modelleridir. Bu tezde katı modellemesi yapılan ve 4 hareket eksenine sahip bir robot kolunun hareket noktalarının servo motorlar ile konumlandırılması, yapay sinir ağlarının öğrenme türlerinden olan aktif öğrenme yani yaparak öğrenme stratejisi ile benzetim sunulmuĢtur. Bilim Kodu : 703.3.012 Anahtar Kelimeler : Servo motor, Yapay sinir ağı, Aktif öğrenme. Sayfa Adedi : 44 Tez Yöneticisi : Yrd. Doç. Dr. Ercan Nurcan YILMAZ olarak v USING ACTIVE LEARNING IN MOTOR CONTROL (M.Sc. Thesis) Onur BATTAL GAZI UNIVERSITY INSTITUTE OF SCIENCE AND TECHNOLOGY July 2011 ABSTRACT The expectations in information and computer technologies of people increasingly differentiated with developing technology. At first, computers be used just to make complex calculations and transfer information, no longer have had the ability to the face of various events decision-making and to learn. People's desire to produce systems capable of learning and decision making, has led to the concept of artificial intelligence. Design and control of the system possible to system modelling. One of many ways to the frequently referenced in produce intelligent systems is artificial neural networks. Neural networks of human decision making, relationship-building and machine learning capabilities to gain them for the mathematical models of nerve cells. In this thesis, solid modeling, and the axis of motion with four points of a robot arm motion with the positioning of the servo motors, the types of artificial neural networks learning as active learning, ie learning by doing simulation strategy is presented. Science Code : 703.3.012 Key Words : Servo motor, Artificial neural networks, Active learning Page number : 44 Adviser : Assist. Prof. Dr. Ercan Nurcan YILMAZ vi TEġEKKÜR ÇalıĢmalarım boyunca yardım ve desteğini esirgemeyen ve beni yönlendiren kıymetli hocam Sayın Yrd. Doç. Dr. Ercan Nurcan YILMAZ’ a, tez çalıĢmalarım boyunca yardımlarını esirgemeyen Yrd. Doç. Dr. Yakup TURGUT’ a, maddi manevi tüm desteklerinden dolayı aileme ve beni hiçbir zaman yalnız bırakmayıp destekleyen eĢim Öğr. Gör. Funda BATTAL' a sonsuz teĢekkürlerimi sunarım. vii ĠÇĠNDEKĠLER Sayfa ÖZET...............................................................................................................iv ABSTRACT......................................................................................................v TEġEKKÜR.....................................................................................................vi ĠÇĠNDEKĠLER.................................................................................................vii ÇĠZELGELERĠN LĠSTESĠ…............................................................................ix ġEKĠLLERĠN LĠSTESĠ......................................................................................x SĠMGELER VE KISALTMALAR......................................................................xi 1. GĠRĠġ.......................................................................................................... 1 2. YAPAY SĠNĠR AĞLARI……........................................................................ 4 2.1. Yapay Sinir Ağlarının Nöron Modeli ................................................... 5 2.2. Yapay Sinir Ağının Yapısı ……........................................................... 9 2.3. Yapay Sinir Ağlarında Öğrenme Stratejileri ..................................... 11 2.3.1. Denetimli (supervised) öğrenme ............................................ 12 2.3.2. Destekleyici (reinforcement) öğrenme......................................13 2.3.3. Denetimsiz (unsupervised) öğrenme........................................14 2.4. Öğrenme Kuralları .............................................................................14 2.4.1. ÇevrimdıĢı (off-line) kurallar.....................................................15 2.4.2. Çevrimiçi (on-line) kurallar.......................................................15 2.5. Öğrenme Oranı.……………………………......................................... 15 2.6. Yapay Sinir Ağlarının Üstünlükleri.………......................................... 16 3. AKTĠF ÖĞRENME…..……....................................................................... 18 3.1. Algoritma ………………..………....................................................... 19 Sayfa 4. UYGULAMA……..……............................................................................. 24 4.1. Katı Model ………………………..................................................... 24 4.2. Ara Yüz …..……………………….................................................... 29 4.3. Servo Motorlar …..……………….................................................... 30 4.3.1. DA servo motorun çalıĢması …............................................ 30 4.3.2. RC servo motoru …………….…........................................... 31 4.4. Benzetim Sonuçları ..………………................................................ 35 5. SONUÇ VE ÖNERĠLER……..……........................................................... 40 KAYNAKLAR..…………….……..……........................................................... 42 ÖZGEÇMĠġ……………….……..……............................................................ 44 ix ÇĠZELGELERĠN LĠSTESĠ Çizelge Sayfa Çizelge 2.1. Toplama fonksiyonu örnekleri .……...………..............................7 Çizelge 2.2. Aktivasyon fonksiyonları ….……………......................................9 Çizelge 4.1. Taban servo motoru için alınan veriler ......................................35 Çizelge 4.2. 1.Eklem servo motoru için alınan veriler ...................................36 Çizelge 4.3. 2.Eklem servo motoru için alınan veriler ...................................37 Çizelge 4.4. Kıskaç servo motoru için alınan veriler .....................................38 x ġEKĠLLERĠN LĠSTESĠ ġekil Sayfa ġekil 2.1. Biyolojik nöron yapısı………........................................................... 4 ġekil 2.2. Yapay sinir modeli ………............................................................... 6 ġekil 2.3. Sigmoid fonksiyon …….…….......................................................... 8 ġekil 2.4. Çok katmanlı YSA ………............................................................. 10 ġekil 3.1. Sistemin blok diyagramı ….……................................................... 20 ġekil 3.2. Aktif öğrenme algoritması akıĢ diyagramı ………......................... 21 ġekil 4.1. SolidWorks' de oluĢturulmuĢ model ............................................. 25 ġekil 4.2. 3 boyutlu katı model ……….......................................................... 27 ġekil 4.3. Fiziksel model …………................................................................ 28 ġekil 4.4. Kontrol ara yüzü ………….…….................................................... 29 ġekil 4.5. DC servo fiziksel modeli ..……….................................................. 32 ġekil 4.6. H-Köprüsü fiziksel modeli ……...…................................................33 ġekil 4.7. Sistemin tam fiziksel modeli ……….............................................. 34 ġekil 4.8. Taban servo motoru için iterasyon-motor açısı grafiği ................. 36 ġekil 4.9. 1.Eklem servo motoru için iterasyon-motor açısı grafiği .............. 37 ġekil 4.10. 2.Eklem servo motoru için iterasyon-motor açısı grafiği ............ 38 ġekil 4.11. Kıskaç servo motoru için iterasyon-motor açısı grafiği .............. 39 xi SĠMGELER VE KISALTMALAR Bu çalıĢmada kullanılmıĢ bazı simgeler ve kısaltmalar, açıklamaları ile birlikte aĢağıda sunulmuĢtur. Simgeler Açıklama wij Ağırlıklar Vi(t) Toplama fonksiyonu sonucu θj EĢik değer Gi GiriĢ değerleri ∆𝒘𝒊 (𝒕) Ağırlık düzeltme katsayısı 𝝋 Unutma faktörü 𝝀 Öğrenme katsayısı Kısaltmalar Açıklama YSA Yapay sinir ağı VLSI Very-large-scale integration GUI Graphical User Interface DA Doğru Akım PWM Pulse-width modulati 1 1. GĠRĠġ Günümüzde, geliĢen teknolojiyle birlikte insanoğlu her alanda karmaĢık problemlerle karĢı karĢıya kalmaktadır. Bu problemlerin çözümü için bazı durumlarda kendi doğasının veya çevresindeki diğer canlıların davranıĢlarından faydalanmaktadır. KuĢkusuz bu çözümleri üretirken en önemli araç olarak bilgisayarlar ve bilgisayarlı sistemleri kullanmaktadır. Teknolojik geliĢmeler izlendiğinde ilk baĢlarda yalnızca veri aktarımı veya karmaĢık hesaplamaları yapmak için kullanılan bilgisayarlar artık çeĢitli olaylarla ilgili karar verme ve iliĢkileri öğrenebilme yeteneğine sahip olmuĢtur. Modern bilgisayarların her zamankinden daha güçlü hale gelmesi, insanların çoğu görevleri yerine getirmek için karar verebilen veya iliĢkisel bağıntılar kurabilen makinelerin geliĢtirilmesini sağlamıĢtır [1-3]. Bir sistemin kontrol edilmesi ve davranıĢlarının belirlenmesi için matematiksel olarak modellenmesi gerekmektedir. KarmaĢık sistemler birbiriyle bağlantılı çok sayıda eleman içerdiğinden matematiksel olarak klasik yöntemlerle modellenmeleri oldukça zordur. Matematiksel olarak modellenemeyen, hakkında sınırlı bilgiye sahip olunan ve çözülmesi mümkün olmayan fiziksel sistem ve süreçler, sezgisel yöntemler yardımıyla bilgisayarlar tarafından çözülebilmektedir. Bu tür çözümlerin en temel özellikleri, bir sistemin giriĢçıkıĢ iliĢkilerine bağlı olarak, bilgiye dayalı karar verebilme ve var olan bilgiler ile olayları öğrenerek daha sonra karĢılaĢılabilecek olaylar hakkında karar verebilmeleridir. Böyle bir yaklaĢımla modellenmiĢ bir sistem değiĢen Ģartlara uyum sağlama ve bilinmeyen sistem giriĢleri için genelleme yeteneğine sahip olduğundan makul sistem çıkıĢları üretebilmektedir. Akıllı veya sezgisel yöntemler olarak bilinen bu tür çalıĢmalar "yapay zeka" kavramını oluĢturmaktadır. Yapay zeka teknikleri kullanılarak oluĢturulmuĢ sistem veya süreçler "Zeki sistemler" olarak adlandırılır [1, 4, 5]. Belirli bir algoritma veya formülasyon ile çözülemeyen problemlerin çözümü için en çok kullanılan akıllı yöntem yapay sinir ağlarıdır. Yapay sinir ağları 2 insan beyninin fonksiyonlarından olan öğrenme olayının bir sistemin kontrolünde veya modellenmesinde kullanılması için geliĢtirilmiĢ, beyin sinir hücrelerinin matematiksel modelleridir. Yapay sinir ağlarının öğrenme özelliği herhangi bir olay için girdi ve çıktılar arasındaki iliĢki doğrusal olsun veya olmasın eldeki mevcut giriĢ-çıkıĢ örneklerinden öğrenerek daha sonra karĢılaĢacağı hiç görmediği olaylar hakkında genelleme yaparak çözüm üretmeye dayanır. Bu özelliğinden ötürü yapay sinir ağları elektrik, elektronik, sinyal iĢleme, görüntü iĢleme ve daha birçok uygulamada kullanılmaktadırlar [1-3]. Yapay sinir ağları, proses elemanı olarak adlandırılan nöronların birbirlerine ağırlık değerleri ile bağlanmasıyla oluĢturulur. Bir problemin çözümü için eldeki veriler kullanılarak yapay sinir ağının öğrenmesi, bu ağırlık değerlerinin istenilen çıkıĢlar elde edilene kadar değiĢtirilmesiyle sağlanır. Doğru ağırlık değerleri bulunduğunda, problemin çözümü için oluĢturulan yapay sinir ağı, problem hakkında genellemeler yapabilme yeteneğine sahip olur. Ağın öğrenmesi için ağırlık değerlerinin değiĢtirilmesi iĢlemi belirli öğrenme kurallara göre yürütülür. Bu kurallar kontrol edilecek veya modellenecek sistemin gerçek zamanlı çalıĢabilmesine göre çevrimiçi (on-line) ve çevrimdıĢı (off-line) öğrenme kuralları olarak ikiye ayrılır. Çevrimiçi öğrenme kurallarına göre tasarlanmıĢ sistemler kendilerinden istenilen fonksiyonları yerine getirirken bir yandan da öğrenmelerine devam ederler. ÇevrimdıĢı öğrenme kurallarına dayalı sistemler ise öncelikle eldeki örnek veriler yardımıyla eğitilirler ve daha sonra kullanıma alınırlar. Bu tür sistemlerde ağ kullanıma alındığında öğrenme olmamaktadır. Daha sonradan sistemin öğrenmesi gereken yeni olaylar ortaya çıktığında sistem tekrar kullanımdan çıkartılarak yeniden eğitilmekte, eğitim iĢlemi bitiminde sistem tekrar kullanıma alınmaktadır [1]. Bu tez çalıĢmasında, yapay sinir ağlarının çevrimiçi (on-line) öğrenme kuralları kapsamında olan aktif öğrenme stratejisi, katı modellenmesi simülasyon ortamında gerçekleĢtirilmiĢ 4 eksenli bir robot kolunun belirli bir 3 pozisyona gelebilmesi için her bir eklem noktasına bağlı olan ve robot kolunun hareketini sağlayan RC Servo motorların kontrolü için benzetim olarak uygulanmıĢtır. 4 2. YAPAY SĠNĠR AĞLARI Yapay sinir ağları, insan beyninin öğrenme, ezberleme, iliĢkiler kurup yeni bilgiler türetme gibi özelliklerini gerçekleĢtirmek amacı ile geliĢtirilen matematiksel modeller ya da bilgisayar programlarıdır. YSA, insan beyninin biyolojik yeteneklerini sağlayabildiği için sinyal iĢleme, kontrol teorisi, sistem modelleme, robotik, zeki sistemler ve kalite kontrolü gibi birçok uygulama alanında araĢtırmacıların ilgisini çekmektedir. YSA uyum, öğrenme, genelleme, verilerin kümelenmesi veya organize edilmesi gibi iĢlemleri kendi hesaplama modeli ile paralel bilgi iĢleme mantığıyla gerçekleĢtirir. Bir yapay sinir ağının paralel bilgi iĢleme mantığı, insan beynini oluĢturan sinir hücrelerinden (nöronlar) esinlenerek oluĢturulmuĢtur. Ġnsan beyni yaklaĢık olarak 1011 adet nörondan meydana gelir ve her bir nöron birbiri ile yaklaĢık 104 adet bağlantı kurar. ġekil 2.1.' de bir nöronun yapısı görülmektedir [6,7]. ġekil 2.1. Biyolojik nöron yapısı Biyolojik bir nöron dentritler, hücre gövdesi ve akson olmak üzere üç temel bileĢenden meydana gelir. Dentritler, elektrik sinyallerini hücre gövdesine taĢıyan sinir lifleridir. Hücre gövdesi, dentritler vasıtasıyla taĢınan sinyalleri iĢleme tabi tutar ve hücrenin kendi elektrik sinyalini oluĢturmasını sağlar. Nöronda oluĢturulan bu elektrik sinyali hücre gövdesinden diğer nöronlara 5 akson vasıtasıyla taĢınır. Bir sinir hücresinin aksonu ve diğer bir sinir hücresinin dentriti arasındaki bağlantılar ise snapsler ile sağlanır. Sinirsel iletim esnasında, nöronların ve her bir snaps arasında kalan bölgelerde meydana gelen olaylar karmaĢık bir kimyasal iĢlem ile belirlenir ve bu iĢlemler yapay sinir ağlarının fonksiyonlarının oluĢturulmasına temel teĢkil eder [7]. Yapay sinir ağları beyinin karmaĢık yapısına benzememektedir. Ancak biyolojik ve yapay sinir ağları arasında iki önemli benzerlik noktası vardır. Bunlardan birincisi her iki ağın yapı taĢları birbirlerine çok iyi derecede bağlı basit hesaplama mekanizmalarıdır. Ġkinci önemli benzerlik ise bu iki yapıyı oluĢturan yapı taĢları (nöronlar) arasındaki bağlantılar ağın fonksiyonunu belirler [7]. Ġnsan beyni birçok görevi yerine getirmede geleneksel bilgisayarlardan daha hızlıdır. Bu biyolojik sinir ağlarının çok büyük ölçekteki paralel yapısından ve yapıyı oluĢturan kaynaklanmaktadır. paylaĢmaktadırlar. bütün nöronların Yapay sinir Çoğu yapay aynı ağları sinir ağı anda ise halen bu çalıĢmasından paralel yapıyı geleneksel sayısal bilgisayarlarda uygulansa bile paralel yapıları bu ağların VLSI, optik aygıtlar ve paralel iĢlemcilerle uygulanmasını daha uygun kılmaktadır [7]. 2.1. Yapay Sinir Ağlarının Nöron Modeli Bir yapay sinir ağı, bir birine ağırlıklar vasıtasıyla bağlı iĢlem elemanlarından oluĢur. YSA' daki iĢlem elemanları (düğümler) basit sinirler olarak adlandırılırlar. ġekil 2.2.' de bir iĢlem elemanının modeli gösterilmektedir. 6 ġekil 2.2. Yapay sinir modeli Yapay sinir ağını oluĢturan iĢlem elemanları temel olarak üç ana kısımdan oluĢur: Ağırlıklar (wij): iĢlem elemanının giriĢlerine uygulanan bilgiler veya birden fazla iĢlem elemanından ve katmandan oluĢan ağlarda her bir elemanın giriĢ veya çıkıĢ değerleri ağırlıklar ile çarpılarak ya tek bir iĢlem elemanının toplama fonksiyonuna ya da diğer bir iĢlem elemanının giriĢ verisini oluĢturur. Toplama fonksiyonu ( Vi(t) ): iĢlem elemanının ağırlık değerleri ile çarpılmıĢ giriĢ değerleri ile hücreye gelen net giriĢ verisini hesaplamak için kullanılan fonksiyondur. En yaygın kullanım Ģekli her giriĢ değerinin ağırlı ile çarpılarak toplanması Ģekliyle oluĢturulan ağırlıklı toplamı bulmaktır [1,6]. Ağırlıklı toplam için toplama fonksiyonu: 𝑉𝑖 𝑡 = 𝑖 𝑖=0 𝑤𝑖𝑗 𝐺𝑖 (2.1) Ģeklinde ifade edilir. EĢitlik 2.1' de Gi değerleri hücrenin her bir giriĢinden uygulanan verileri ifade eder. Eğer iĢlem elemanı net girdisi bir eĢik değer θj ile toplanıp aktivasyon fonksiyonuna gönderilmek istenirse eĢitlik 2.2 kullanılmalıdır. 7 𝑉𝑖 𝑡 = 𝑖 𝑖=0 𝑤𝑖𝑗 𝐺𝑖 + θ𝑗 (2.2) Uygulamada bir problem için en uygun toplama fonksiyonunu belirlemek için kullanılan bir yöntem yoktur. Genellikle deneme yanılma yolu ile bir proses elemanının toplama fonksiyonu belirlene bilir. Çizelge 2.1.' de çeĢitli toplama fonksiyonu örnekleri verilmiĢtir. Çizelge 2.1. Toplama fonksiyonu örnekleri [1]. Net GiriĢ Açıklama Ağırlık değerleri giriĢler ile çarpılır ve 𝑉𝑖 𝑡 = 𝑤𝑖𝑗 𝐺𝑖 𝑖 daha sonra bulunan değerlerde birbiri ile çarpılarak net girdi hesaplanır. i kadar girdi içerisinden ağırlıklar ile 𝑉𝑖 𝑡 = 𝑀𝑎𝑥 𝑤𝑖𝑗 𝐺𝑖 çarpıldıktan sonra en büyüğü hücrenin girdisi olarak kabul edilir. i kadar girdi içerisinden ağırlıklar ile 𝑉𝑖 𝑡 = 𝑀𝑖𝑛 𝑤𝑖𝑗 𝐺𝑖 çarpıldıktan sonra en küçüğü hücrenin girdisi olarak kabul edilir. i kadar girdi içerisinden ağırlıklar ile 𝑉𝑖 𝑡 = 𝑠𝑔𝑛(𝑤𝑖𝑗 𝐺𝑖 ) 𝑖 çarpıldıktan sonra pozitif ve negatif olanların sayısı bulunur. Büyük olan sayı hücrenin net girdisi olarak kabul edilir. Hücreye gelen bilgiler ağırlıklı olarak 𝑉𝑖 𝑡 = 𝑉𝑖 𝑡 𝑒𝑠𝑘𝑖 + (𝑤𝑖𝑗 𝐺𝑖 ) toplanır ve daha önce gelen bilgilere eklenerek hücrenin net girdisi hesaplanır. Aktivasyon fonksiyonu: giriĢ değerlerinin ağırlıklar ile çarpılıp daha sonra toplama fonksiyonu ile iĢlem elemanının net girdi değerinin 8 hesaplanmasıyla elde edilen veri aktivasyon fonksiyonunda iĢlenerek elemanın, girdilere karĢılık gelen çıktıyı üretmesini sağlar. Toplama fonksiyonunda olduğu gibi aktivasyon fonksiyonunda da farklı hesaplamalar kullanılabilir. Yapay sinir ağları oluĢturulurken kullanılan en yaygın aktivasyon fonksiyonu sigmoid fonksiyondur. Sigmoid fonksiyon, 1 𝑓(𝑉𝑖 ) = 1+𝑒 −𝑉𝑖 (2.3) eĢitliği ile ifade edilir ve Ģekilsel olarak Ģekil 2.3.' deki gibi gösterilir. ġekil 2.3. Sigmoid fonksiyon ĠĢlem elemanlarında kullanılabilecek diğer aktivasyon fonksiyonları çizelge 2.2.' de verilmiĢtir. 9 Çizelge 2.2. Aktivasyon fonksiyonları [1]. Aktivasyon fonksiyonu Lineer fonksiyon: 𝑓 𝑉𝑖 = 𝑉𝑖 Açıklama Gelen girdi verileri olduğu gibi hücre çıkıĢı olarak kabul edilir. Step fonksiyonu: = 1 0 𝑓 𝑉𝑖 𝑒ğ𝑒𝑟 𝑉𝑖 > 𝑒ş𝑖𝑘 𝑑𝑒ğ𝑒𝑟 𝑒ğ𝑒𝑟 𝑉𝑖 ≤ 𝑒ş𝑖𝑘 𝑑𝑒ğ𝑒𝑟 Hesaplanan net girdi değerinin belirli bir eĢik değerinin altında veya üstünde olmasına göre hücre çıkıĢı 1 veya 0 değerini alır. Sinüs fonksiyonu: 𝑓 𝑉𝑖 = sin (𝑉𝑖 ) Hücrenin veya düĢünülen ağın öğrenmesi olayların fonksiyonuna uygun sinüs dağılım gösterdiği durumlarda kullanılır. EĢik değer fonksiyonu: 0 𝑒ğ𝑒𝑟 𝑉𝑖 ≤ 0 𝑓 𝑉𝑖 = 𝑉𝑖 𝑒ğ𝑒𝑟 0 < 𝑉𝑖 < 1 1 𝑒ğ𝑒𝑟 𝑉𝑖 ≥ 1 Girdi verisinin 0 ve 1'den büyük veya küçük olmasına göre değer alır. 0 ve 1 arasındaki değerlerin dıĢında değer alamaz. Hiperbolik tanjant fonksiyonu: 𝑓 𝑉𝑖 = (𝑒 𝑉𝑖 + 𝑒 −𝑉𝑖 )/(𝑒 𝑉𝑖 − 𝑒 −𝑉𝑖 ) Gelen net giriĢ verisinin tanjant fonksiyonundan geçirilmesi ile çıkıĢ değeri hesaplanır. 2.2. Yapay Sinir Ağının Yapısı Bir önceki baĢlık altında yapay sinir ağlarını oluĢturmak için kullanılan iĢlem elemanlarından bahsedilmiĢti. Yapay sinir ağları çok sayıda iĢlem elemanının sıralı olarak art arda bağlanması ile oluĢturulur. Sinir hücrelerinin ağı oluĢtururken bir araya gelmesi rastgele olmaz. Yapay sinir ağları genel olarak 10 birbirine paralel bağlı hücrelerden meydana gelen katmanlardan meydana getirilir ve 3 katmanlı bir yapı oluĢturulur [1,8]. Bunlar: Giriş katmanı: Bu katman dıĢarıdan alınacak bilgilerin ağ içerisine alınmasını ve gizli katmanlara aktarmasını sağlar. Bazı ağlarda giriĢ katmanında bilgiler iĢlenmez ve direkt olarak gizli katmanlara aktarılır. Gizli katmanlar: GiriĢ katmanından ağ içerisine alınan bilgiler gizli katmanda iĢlenerek çıkıĢ katmanına aktarılırlar. Çözülecek problemin karmaĢıklığına göre ağ yapısında birden fazla gizli katman oluĢturulabilir. Gizli katmanlara sahip olmayan, sadece giriĢ ve çıkıĢ katmanı olan ağlar karmaĢık problemlere çözüm üretmekte yetersiz kalmaktadırlar. Bu nedenle çözülecek problemin karmaĢıklığına göre en az bir gizli katman kullanılır ve istenirse gizli katman sayısı artırılabilir [1,9]. Çıkış katmanı: Bu katman ağın çıkıĢ birimidir. Gizli katmandan gelen bilgiler bu katmanda iĢlenerek, giriĢ katmanından ağ içerisine alınan bilgiler için üretilen çıkıĢ bilgisi bu katman ile ağ dıĢına gönderilir. ġekil 2.4.' de iki gizli katmana sahip 4 katmanlı bir YSA görülmektedir. ġekil 2.4. Çok katmanlı YSA 11 ġekil 2.4.' deki ağı oluĢturan her sinir bulunduğu katmandan sonra gelen diğer katmanı oluĢturan bütün sinirler ile bağlantılıdır. Her katmandaki düğümlere sadece önceki katmandaki düğümlerden gelen bilgiler uygulanır. Bir iĢlem elemanı kendisine asla bağlanamaz. Bir katmanı oluĢturan sinirler arasında veya geri-besleme Ģeklinde bağlantı yoktur. GiriĢ katmanına uygulanan bilgiler, giriĢ katmanı ile gizli katmanı birbirine bağlayan ağırlıklar ile çarpılıp gizli katmana geçmektedir. Gizli katmana gelen bilgiler sırasıyla toplama fonksiyonu ve aktivasyon fonksiyonlarından geçirilerek gizli katman ile çıkıĢ katmanı arasında bulunan ağırlıklar ile çarpılıp çıkıĢ katmanına aktarılır. ÇıkıĢ katmanını oluĢturan düğümler de gizli katmandan ağırlıklar ile çarpılıp aktarılan bilgileri yine sırasıyla toplama ve aktivasyon fonksiyonlarından geçirerek ağ giriĢine uygulanan bilgilere karĢılık üretilmek istenen çıkıĢ verisini oluĢtururlar. YSA üzerinde meydana gelen bilgi akıĢı giriĢ katmanından çıkıĢ katmanına doğru tek yönlü bir iletiĢim Ģeklinde gerçekleĢtirilir [8,9]. 2.3. Yapay Sinir Ağlarında Öğrenme Stratejileri Yapay sinir ağlarının en önemli özelliklerinden olan öğrenme, her bir iĢlem elemanının giriĢlerine bağlı olan ağırlık değerlerinin, belirli algoritmalara veya stratejilere göre değiĢtirilme iĢlemidir. YSA çıkıĢında arzu edilen sonuçlara ulaĢmak için giriĢ bağlantılarının ağırlıklarının değiĢtirilme iĢlemi adaptasyon fonksiyonu olarak adlandırılır ve öğrenme modunu belirler. Bir yapay sinir ağının öğrenme stratejisi, bu ağ ile öğrenmeyi gerçekleĢtirecek sistem ve kullanılan öğrenme algoritmasına bağlı olarak değiĢmektedir. Yapay sinir ağlarının öğrenme iĢlemi genel olarak 3 tip öğrenme stratejisi gerçekleĢtirilir. Bunlar; Denetimli (supervised) öğrenme, Destekleyici (reinforcement) öğrenme, denetimsiz (unsupervised) öğrenmedir. Denetimli öğrenme bir öğretmen gerektirir. Öğretmen, bir veri eğitim kümesi veya ağ sonuçlarının performans sınıflandırması olabilir. Her iki öğrenme stratejisinde de öğretmen öğrenme iĢlemini destekleyici (reinforcement) olabilir. Yani sadece ağ tarafından üretilen çıktının doğru veya yanlıĢ olduğunu gösteren bir sinyal ile 12 öğrenen sisteme yardımcı olur. Öğrenme iĢleminde harici bir öğretici olmadığı zaman öğrenme iĢlemini gerçekleĢtirecek sistem, ağ içerisinde tasarlanmıĢ bazı dâhili ölçütlere göre kendini organize etmelidir ve bu iĢlem yaparak öğrenme kavramını oluĢturur [10]. 2.3.1. Denetimli (supervised) öğrenme Yapay sinir ağları ile yapılan uygulamaların çoğunda öğrenme iĢlemi denetimli (supervised) öğrenme Ģeklinde olur. Bu mod da bir yapay sinir ağının gerçek çıkıĢı istenilen çıkıĢ ile karĢılaĢtırılır. Bağlantı ağırlıkları genellikle baĢlangıçta rastgele belirlenir. Bir sonraki iterasyonda gerçek çıkıĢ verisinin istenilen çıkıĢ değerine daha yakın bir değerde olması için ağırlıklar tekrar ayarlanır. Öğrenme yöntemi tüm iĢlem elemanlarının hatalarını en aza indirmek için çalıĢır [10]. Denetimli öğrenme ile yapay sinir ağı kullanılmaya baĢlanmadan önce eğitilmelidir. Eğitim ağa giriĢ ve çıkıĢ verisinin gösterilmesiyle gerçekleĢtirilir. Bu veriler genellikle eğitim veri seti olarak adlandırılır. Veri seti sistemin öğrenmesi istenilen giriĢlere karĢılık gelen çıkıĢ değerlerinden meydana gelir. Verilen sıralı giriĢ verileri için gerekli çıkıĢlar üretildiğinde ağ arzu edilen istatiksel doğrula ulaĢmıĢ olur. Daha fazla öğrenme gerekli olmadığında öğrenme algoritması ile değiĢtirilen ağırlık değerleri son hali ile bırakılır. Birçok uygulamada gerçek veriler kullanılmalıdır. Bu tür eğitim aĢamaları çok zaman alabilmektedir ve denetimli öğrenme ile eğitilen prototip sistemlerde eğer iĢlem gücü yetersiz ise eğitim süreci haftalar almaktadır [10]. Bir yapay sinir ağının denetimli öğrenme sırasında eğitim veri seti ile göstermiĢ olduğu performansının yanı sıra daha sonra hiç görmemiĢ olduğu giriĢ verileri karĢısında neler yapabileceği de önemlidir. Bir sistemin eğitildikten sonra test verilerine makul cevaplar vermemesi YSA' nın eğitim sürecinin bitmediği anlamına gelir. Test aĢaması ağın, bir uygulama içinde 13 yer alan genel kalıpları öğrenip öğrenmediğini anlamak için yapılan basit ancak çok önemli bir aĢamadır [10]. 2.3.2. Destekleyici (reinforcement) öğrenme Bu stratejide de denetimli öğrenmede olduğu gibi sistemin öğrenmesine bir öğretmen yardımcı olur. Fakat denetimli öğrenmenin aksine öğrenme sırasında sisteme sadece giriĢ verileri gösterilirken çıkıĢ veri seti gösterilmez. Bunun yerine sisteme gösterilen giriĢ verilerine karĢılık gelen çıkıĢları ağın kendisinin üretmesi beklenir ve öğretmen sadece ağın ürettiği çıkıĢın doğru veya yanlıĢ olduğunu bildiren bir iĢaret sinyali üretir. Daha sonra sistem bu iĢaret sinyalini dikkate alarak ya öğrenme sürecini bitirir ya da süreci devam ettirir [1]. Birçok karmaĢık sistem için üretilen sistem çıkıĢının doğru veya yanlıĢ olma denetimi, denetimli öğrenme stratejileri için eğitim verilerinin oluĢturulmasında hem zaman alıcı hem de zor bir süreci gerektirir. Bu tür uygulamalarda destekleyici öğrenme stratejilerinin kullanılması eğitim için gerekli verileri sayısının azalmasını sağlar. Makine öğrenmesi alanında sistemden beklenen bir eylemin, basit bir değerlendirme aĢamasında geçirilmesine dayalı öğrenme Ģekline destekleyici (reinforcement) öğrenme denmektedir. Çevreden veya durum tahmin ağından gelen değerlendirme bilgisi destek sinyali olarak adlandırılır ve bu sinyal sistem çıkıĢının doğru veya yanlıĢ olduğunu tahmin edebilir. Eğer sistemin eylemleri karmaĢık bir öğrenme aĢaması için önceden planlanan doğrultuda değilse, sistemden en iyi çıkıĢı elde edebilmek için çıkıĢ tahmin iĢlemi devam ettirilmek zorundadır. Sistemin eğitimi için gerekli destek sinyali sistemden alınacak bir eylemler sırasından sonrada elde edilebilir. Durum sinyali karar denetim kontrolü uygulandıktan sonra yok olacağından, karar denetim kontrolü destekleyici öğrenmede, problem çözümü aĢamasında yapay sinir ağının eğitim için ağırlık değerlerinin ayarlanması iĢleminde büyük bir öneme sahiptir [11]. 14 2.3.3. Denetimsiz (unsupervised) öğrenme Bu öğrenme stratejisinde sistemin öğrenmesine yardımcı olan bir öğretmen yoktur. Olayları öğrenecek sisteme sadece giriĢ verileri gösterilir. Sisteme sunulan örnekler arasındaki iliĢkinin YSA' nın kendi kendine öğrenmesi beklenir. Bu yüzden bu tür stratejiler bilgisayarlara kendi kendilerine öğrenebilme yeteneği kazandırabilir. Daha çok sınıflandırma ve haritalama gibi YSA uygulamalarında tercih edilen öğrenme stratejisidir. Denetimsiz öğrenme alanlarından olan öz denetimli (self supervised) öğrenme bu stratejinin en ilgi çeken alanıdır. Çünkü bu tür bir strateji ile eğitilen ağlar ağırlık değerlerinin değiĢimi veya ayarlanması için hiçbir dıĢ etkiye ihtiyaç duymazlar. Bunun yerine kendi içlerinde kendi performanslarını izlerler. Yani ağ giriĢine uygulanan verilerin eğilimlerini bulmaya çalıĢırlar ve ağın fonksiyonuna göre kendi içlerinde bir uyarlama yaparlar [1,10]. Bir denetimsiz öğrenme algoritması ağı oluĢturan iĢlem elemanı kümesi içerisindeki iĢbirliğini göz önüne alır. Yani harici bir giriĢ kümesindeki herhangi bir iĢlem elemanının aktif olması, bu küme içerisinde yer alan diğer iĢlem elemanlarının da aktivitelerinin artmasına neden olmaktadır. Aynı Ģekilde herhangi bir iĢlem elemanının aktivitesinin azalması, yine kümeyi oluĢturan tüm iĢlem elemanları üzerinde azaltıcı bir etki olmasını sağlamaktadır. 2.4. Öğrenme Kuralları Yapay sinir ağlarında öğrenme, yukarıda bahsedilen stratejilerden herhangi birinin uygulanması halinde bazı kurallar çerçevesinde gerçekleĢtirilir. Bahsedilen kurallar uygulanma Ģekline göre çevrimdıĢı (off-line) ve çevrimiçi (on-line) kurallar olmak üzere ikiye ayrılır. 15 2.4.1. ÇevrimdıĢı (off-line) kurallar ÇevrimdıĢı öğrenme kurallarına göre öğrenen sistemler eğitim aĢamasında kullanıma alınmazlar. YSA' nın eğitim süreci bittikten sonra ağırlık değerleri sabitlenir ve sistem daha sonra iĢletmeye alınır. Bu kurallar ile eğitilen sistemlerin daha sonradan öğrenmeleri gereken farklı olaylar veya sistem davranıĢları ortaya çıkarsa sistem yeniden, yeni verilerle eğitilmek için devre dıĢı bırakılır. Yapay sinir ağlarının çoğu çevrimdıĢı öğrenme tiplerine göre eğitilir [12]. 2.4.2. Çevrimiçi (on-line) kurallar Çevrimiçi öğrenme kuralları sistem iĢletmedeyken bir karar verme algoritması ile öğrenmesine gerçek zamanlı olarak devam etmesine dayanır. Yani sistem kendisinden beklenen iĢlevleri veya görevleri yerine getirirken bir yandan da yeni olayları ve davranıĢları öğrenmeye devam eder. Bu öğrenme tipi çevrim dıĢı öğrenme kurallarında göre daha karmaĢık bir tasarım yapısına sahiptir [12]. Çevrimiçi öğrenme kapsamında olan aktif öğrenme 3. Bölümde daha detaylı olarak anlatılmıĢtır. 2.5. Öğrenme Oranı Yapay sinir ağlarının öğrenme hızı çeĢitli kontrol edilebilir faktörlere bağlıdır. Öğrenme yaklaĢımı seçiminde birçok faktör dikkate alınmalıdır. ÇevrimdıĢı öğrenme kurallarının uygulandığı öğrenen sistemlerde, daha düĢük öğrenme oranları ile YSA' nın eğitilmesi ve öğrenmesi daha fazla zaman almaktadır. Öğrenme oranının artırılması ağın eğitim sürecini kısaltır. Aktif öğrenme ile öğrenen bir sistemin çevrimiçi olarak verilen bir giriĢ değeri için istenilen bir çıkıĢı sağlaması ne kadar kısa sürede gerçekleĢirse sistemin cevabı o kadar kısa sürede üretilmiĢ olur [10]. 16 Zamanın yanı sıra çeĢitli faktörler öğrenme süreci içerisinde dikkate alınmalıdır. YSA' nın karmaĢıklığı, boyut, paradigma seçimi, mimari, öğrenme kuralları ve ağdan istenen doğruluk bir bütün olarak dikkate alınmalıdır. Bu faktörler ağın eğitim sürecinin uzunluğunun belirlenmesinde önemli rol oynar. Bu faktörlerden herhangi birisinin değiĢimi eğitim süresini uzatabilir veya ağ çıkıĢının kabul edilemez değerlerde olmasına yol açar [10]. Çoğu öğrenme fonksiyonu bazı Ģartlar veya öğrenme sabitlerine sahiptir. Öğrenme oranı 0 ile 1 arasında bir değerdir. Eğer öğrenme oranı 1 'den büyük olursa öğrenme algoritmasında ağırlıkların düzeltilmesi sırasındaki aĢma değeri ağ çıkıĢ değerinin salınımlı olmasına neden olur. Küçük öğrenme oranları ise anlık hata değerinin çabucak düzeltilmesine imkân vermez ancak küçük adımlar ile hataların düzeltilmesi ağ çıkıĢında en az yakınsamaya ulaĢılmayı sağlar [10]. 2.6. Yapay Sinir Ağlarının Üstünlükleri Yapay sinir ağlarının diğer sistemlere göre avantajları aĢağıda açıklanmıĢtır [13]. Matematiksel olarak modellenmesi mümkün olmayan sistemleri veya problemleri çözebilirler. Bir sistemin davranıĢındaki doğrusal olmayan iliĢkileri kolaylıkla modelliye bilirler. Yapay sinir ağlarının çalıĢma hızları geleneksel sistemlerden hızlıdır. Öğrenecekleri problemlerde meydana gelebilecek değiĢiklere karĢı tekrar eğitilebilirler ve uyum yetenekleri vardır. Mimarilerinden kaynaklanan paralel çalıĢma özelikleri gerçek zamanlı çalıĢmalarını kolaylaĢtırmaktadır. 17 Genelleme yeteneğine sahip olduklarından YSA' nın eğitim sırasında kullanılan eğitim veri seti dıĢındaki veriler içinde çıkıĢlar üretebilirler. 18 3. AKTĠF ÖĞRENME Denetimli öğrenme ile eğitilecek sistemlerin eğitim aĢaması, bu sistemden üretilen giriĢ ve çıkıĢ verilerinden oluĢturulmuĢ bir eğitim kümesine dayanır. KarmaĢık sistemlerde eğitim veri setinin sistemden kolayca elde edilememesi bu tür sistemlerin yapay sinir ağları ile modellenmesini ve kontrolünü zorlaĢtırır. Bunun yanında yapay sinir ağının eğitimi için kullanılan yaklaĢım fonksiyonunun kalitesi ve eğitim veri kümesinin büyüklüğüne bağlı olarak eğitim süresinin uzun olması gibi problemlerle de karĢılaĢılır. Güvenilir bir yaklaĢım elde edebilmek için, sistemin durum uzayını kaplayan ve sistemden beklenen göreve özgün veri örneklerine ihtiyaç duyulur. Ayrıca öğrenen sisteme etkin bir Ģekilde sunulan veriler sistem çıkıĢının hızlı bir Ģekilde sonuca yakınsamasına neden olabilir. Bu yakınsaman, rastgele seçilmiĢ eğitim verilerine sistemin zaten yeteri kadar aĢinalık kazanmasından kaynaklanır ve bu aĢamadan sonra sistemin öğrenilecek olay hakkında genelleme yapma kabiliyetini artırmak mümkün olmaz. Bu problem öğrenme iĢleminin her iterasyonunda kötüleĢir ve ağın olayı öğrenme kabiliyeti azalır. En verimli öğrenme için veri seçimini optimize etme metotları literatür de denetimli ve denetimsiz öğrenmede aktif veri seçimi kavramı altında veya model tabanlı destekleyici öğrenmede keĢif stratejileri adıyla anılır [14]. Dinamik olarak değiĢen bir sistemin etkili gerçek zamanlı kontrolünün sağlanması için sürekli olarak kendini adapte etme yeteneğine sahip bir kontrol sistemi uygulanmasıyla mümkündür. Bu ise kontrol sisteminin, kendi kontrol parametrelerinde dinamik sistem için bir planlar dizisi ile uygun değiĢiklikler yapmasıyla sağlanır. Yapay sinir ağları bu tür karmaĢık problemleri çözmek için bir sistemin giriĢleri ile arzu edilen çıkıĢlarının doğrusal olmayan haritalama yeteneği ile elde edilmesini sağlayabildiklerinden gerçek zamanlı kontrolün istendiği kontrol sistemi uygulamaları için uygun yapılardır [15]. 19 Aktif öğrenme, dinamik olarak değiĢen problemlerin çözümü için YSA tabanlı denetleyici tasarımında, sistem değiĢikliklerine bağlı olarak kontrol parametrelerinin güncelleĢtirilmesi için önemli rol oynamaktadır. KeĢfetme ile öğrenme olarak da nitelenebilen aktif öğrenmede, öğrenen sistem kendi deneyim ve ön bilgileriyle problemi çözmeye çalıĢır. Yani sistemin kendi çevresiyle etkileĢime girerek, deneme yanılma yolu ile çevresindeki değiĢiklikleri keĢfetmesi ve kendisini adapte etmesi sağlanır. KeĢfederek öğrenme basitçe 'yaparak öğrenme' olarak tanımlanır. Bu öğrenme metodu denetimli makine öğrenmesinde 'aktif makine öğrenmesi' olarak bilinir. Denetimli öğrenmede öğrenecek sisteme eğitimi için yeteri sayıda eğitim örneklerinin sunulması gerekir. Örnekler ve öğrenen sistemden elde edilen öğrenme çıktıları arasındaki hata sinyali öğrenme sürecinin devamlılığını kontrol etmek için kullanılır. Eğitim verilerini elde etmek bazen zor olmaktadır. Aktif öğrenme, mevcut örneklere olabilecek tüm durumları keĢfederek yeni örnekler eklenmesini mümkün kılmaktadır [16, 17]. 3.1. Algoritma Bu tez çalıĢmasında, hareket açıları RC servo motorlarla sağlanan 4 eksenli bir robot kolunun modellenmesi simulink ortamında gerçekleĢtirilmiĢtir. ġekil 3.1.' de sistemin blok diyagramı verilmiĢtir. Her bir nöronun giriĢ değerleri hareket noktalarının ulaĢmasının istenildiği açıların derece cinsinden değerleridir. Nöronlar tarafından üretilen çıkıĢ değerleri ise hareket noktalarına bağlı RC servo motorların anahtarlama sinyalleridir. Aktif öğrenme algoritması ile nöron giriĢ ağırlık değerleri (wi) Ģekil 3.2.' de gösterilen akıĢ Ģeması ile değiĢtirilmektedir. 20 ġekil 3.1. Sistemin blok diyagramı 21 ġekil 3.2. Aktif öğrenme algoritması akıĢ diyagramı 22 ĠĢlem elemanlarının ağırlıklı toplam için toplam fonksiyonu: 𝑉𝑖 𝑡 = 4 𝑖=1 𝑤𝑖 𝐺𝑖 (3.1) eĢitliği ile hesaplanmıĢtır. Hesaplanan ağırlıklı toplamlar her bir nöronun çıkıĢ değerlerinin elde edilmesi için 1−𝑒 −𝑉 𝑖 𝑓 𝑉𝑖 = 1+𝑒 −𝑉 𝑖 (3.2) hiperbolik tanjant sigmoid fonksiyonundan geçirilmiĢtir. Ağırlıkların güncelleĢtirilmesi 𝑤𝑖 𝑡 + 1 = 𝑤𝑖 𝑡 + ∆𝑤𝑖 (𝑡) (3.3) eĢitliği gerçekleĢtirilir. EĢitlikte yer alan ağırlık düzeltme katsayısı (∆wi) ∆𝑤𝑖 𝑡 = 𝜑𝑓(𝑉𝑖 )[𝜆𝑉𝑖 𝑡 − 𝑤𝑖 𝑡 ] (3.4) ağırlık düzeltme kuralı ile hesaplanır. EĢitlikte yer alan φ unutma faktörüdür ve genellikle ağırlıklardaki artıĢı sınırlandırmak için 0.01 ile 0.1 arasında seçilir. 𝜆 ise öğrenme katsayısıdır. Algoritmanın iĢleyiĢ aĢamaları Ģu Ģekildedir : BaĢlangıç ağırlık değerleri (w1, w2, w3, w4) rastgele atanır, Hareket noktalarının açı değerleri derece cinsinden nöronların giriĢlerine uygulanır, Her bir nöronun ağırlıklı toplamı eĢitlik 3.1 ile hesaplanır, 23 EĢitlik 3.2 ile iĢlem elemanlarının çıkıĢ değerleri elde edilir, Elde edilen çıkıĢ değerleri DC servo motorların anahtarlama sinyali olarak sürücülere uygulanır, Hareket noktalarının ulaĢtığı açı değerleri istenilen açı değerleri ile karĢılaĢtırılarak çıkıĢ hatası bulunur, Bulunan çıkıĢ hatası kabul edilebilir sınırlar içerisinde ise ağılık değerleri değiĢtirilmez, Eğer çıkıĢ hatası kabul edilebilir sınırlar içerisinde değil ise öncelikle eĢitlik 3.4' e göre ağırlık düzeltme katsayısı hesaplanır. Daha sonra eĢitlik 3.3' e göre ağırlık güncelleĢtirilmesi yapılarak yeni ağırlık değerleri bulunur. Ġstenilen çıkıĢ değerine ulaĢılıncaya kadar bir önceki adımdaki ağırlık güncelleĢtirme iĢlemi tekrar edilir. 24 4. UYGULAMA 4.1. Katı Model Bu tez çalıĢmasında uygulaması gerçekleĢtirilen aktif öğrenme algoritması, 3. bölümde anlatıldığı gibi nöronlar üzerinden bir robot kolunun eklem yerlerinin hareketini sağlayan DC Servo motorların kontrol sinyallerini üretmek için kullanılmıĢtır. 3 boyutlu olarak katı modellemesi SolidWorks yazlımında yapılan 4 eksenli robot kolu daha sonra SimMechanics araç kutusu kullanılarak MATLAB/Simulink programına aktarılmıĢ ve MATLAB/Simulink ortamın da Simscape yazılımı kullanılarak geliĢtirilmiĢtir. SimMechanics, Simulink programında, katı cisimlerin bağlantı noktaları ve newton dinamikleri yardımıyla birbirlerine bağlanarak mekaniksel sistemlerin dizayn edilmesini ve simulasyonunun gerçekleĢtirilmesini sağlamak için oluĢturulmuĢ bir mühendislik yazılımıdır. Bu yazılımın içerisinde barındırdığı SimMechanics Link aracı ise CAD programları (AutoCad, SolidWorks v.b.) ve Simulink içerisindeki SimMechanics yazılımı arasında bir köprü görevi görür. Bu tez çalıĢmasında SolidWorks de oluĢturulan robot kolunun katı modeli SimMechanics eklentisi kullanılarak Simulink' e aktarılmıĢtır. SolidWorks SimMechanics eklentisi ile fiziksel model olarak gerçekleĢtirilmiĢ robot kolunun SolidWorks montaj dosyası XML veya grafik dosyası formatı olarak kaydedilmiĢ ve Simulink içerisindeki SimMechanics yazılımı ile düzenlenmesi ve kontrol edilmesi için Simulink ortamına aktarılmıĢtır. ġekil 4.1.' de robot kolunun SolidWorks' de hazırlanmıĢ ve SimMechanics Link eklentisi ile Simulink ortamına aktarılmadan önceki montajlı hali gösterilmektedir. 25 ġekil 4.1. SolidWorks' de oluĢturulmuĢ model 26 Simscape, Simulink ortamında fiziksel olarak sistem modellemesi için kullanılan blok kütüphaneleri ve özel benzetim özelliklerini barındıran bir yazılımdır. Standart simulink modelleme yaklaĢımından farklı olarak, özellikle gerçek fiziksel bileĢenlerden, modellenecek sistemin benzetiminin oluĢturulmasına imkân vermektedir. Simulink blokları temel matematiksel iĢlemleri temsil etmektedir. Simulink blokları birbirlerine bağlandıklarında ortaya çıkan diyagram, benzetimi yapılacak sistemin matematiksel modeli veya temsili eĢdeğeridir. Simscape teknolojisi fiziksel ağ yaklaĢımına dayalı sistem tasarımı altında modeller oluĢturulmasını sağlar. Bu yaklaĢıma göre her sistem, bağlantı noktaları ile enerji alıĢveriĢi vasıtasıyla kendisini oluĢturan iĢlevsel elemanların etkileĢimi ile temsil edilmektedir. Simscape kütüphanelerinde yer alan fiziksel elemanların bağlantı noktaları iki yönlüdür ve elemanlar arasındaki fiziksel bağlantıları taklit ederler. Simscape blok bağlantıları pompa, valf ve benzeri gibi gerçek bileĢenlerin bağlantılarını andırır. BaĢka bir deyiĢle simscape diyagramları fiziksel sistem düzenini sağlamaktadır. Gerçek fiziksel bileĢenlerin bağlantılarında olduğu gibi simscape blokları birbirlerine bağlandıklarında sistemde oluĢan bilgi veya sinyal akıĢının yönünün belirtilmesine gerek yoktur. Fiziksel ağ yaklaĢımı sayesinde değiĢkenler ve çift yönlü fiziksel bağlantılarda gelebilecek geleneksel sorunlar giderilmiĢ olur [20]. Robot kolunun 3 boyutlu katı modeli ġekil 4.2.' de gösterilmiĢtir. meydana 27 ġekil 4.2. 3 boyutlu katı model Sistemin 3 boyutlu katı modelinin elde edilebilmesi için simscape ortamında oluĢturulmuĢ fiziksel model ġekil 4.3.' de gösterilmiĢtir. 28 ġekil 4.3. Fiziksel model 29 4.2. Ara Yüz Katı modellemesi ve fiziksel modeli oluĢturulan robot kolunun aktif öğrenme algoritması ile kontrolünün sağlanabilmesi için MATLAB/GUI ile bir ara yüz hazırlanmıĢtır. Aktif öğrenme algoritması GUI ara yüzü vasıtasıyla MATLAB programla dili kullanılarak m-file editörü üzerinden yazılmıĢtır. OluĢturulan ara yüz ġekil 4.4.' de gösterilmiĢtir. ġekil 4.4. Kontrol ara yüzü Hazırlanan ara yüz iki kısımdan oluĢmaktadır. Birinci kısım aktif öğrenme algoritması ile robot kolunun hareket noktalarının ulaĢmasının istendiği açı değerlerinin girildiği bölümdür. Bu bölümde derece cinsinden girilen taban açısı, 1. Eklem açısı, 2. Eklem açısı ve kıskaç açı değerleri her bir öğrenici nöronun giriĢ verilerini oluĢturmaktadır. Açı değerlerinin girilmesiyle tamam butonuna tıklanıldığında, robot kolunun bu dört hareket noktasının istenilen 30 açı değerlerine gelebilmeleri için bölüm 3'de anlatılan algoritma ile öğrenici nöronların ağırlık değerleri değiĢtirilerek, hareket noktalarına bağlı RC Servo motorların anahtarlama sinyalleri üretilir ve robot kolunun yaparak öğrenme mantığı ile istenilen pozisyona gelmesi sağlanır. Ġkinci kısımda ise istenirse robot kolunun kontrolü, RC servo motorların anahtarlama sinyallerinin süreleri girilerek manuel olarak yapılabilmektedir. 4.3. Servo Motorlar Servo motorlar, kontrol motorları olarak da adlandırılan elektrik motorları olup özellikle geri beslemeli kontrol sistemlerinde çıkıĢ hareketini kontrol edici olarak kullanmak üzere tasarlanır ve üretilirler. Gömülü kontrol devrelerine sahiptirler ve birkaç vat ile birkaç yüz vat olacak Ģekilde farklı güçlerde yapılırlar. Servo motorların yüksek hız tepkisine sahip olmaları rotor ataletinin düĢük olmasını gerektirir. Bu motorlar yapı olarak daha küçük çaplı ve daha uzundurlar. Servo motorların en yaygın kullanım alanlarına örnek olarak; robotlar, radarlar, bilgisayar malzemeleri, takım tezgâhları, izleme ve yol gösterme sistemleri ve iĢlev denetleyiciler gösterilebilir [18]. 4.3.1. DA servo motorun çalıĢması Bir servo motorun milinden geri besleme sinyalini almak için dinamik performansı düĢük, kullanımı kolay ve ekonomik olan tako jeneratör, hall sensör veya artırımlı enkoder geri besleme elemanları kullanılır. Sistem darbe geniĢlik modülasyonu (PWM) tekniği kullanılarak kontrol edilir. Pozisyon bilgisine karĢılık gelen PWM sinyali motor sürücüsüne uygulanır. Servo motor milindeki geri besleme elemanı giriĢ bilgisini referans alıp rotoru istenilen referans konumuna gelene kadar hareket ettirir. GiriĢ referans değeri değiĢmediği sürece milin konumu sabit kalır [19]. 31 4.3.2. RC servo motor RC servo motor içerisinde bir doğru akım motoru, kod çözücü, motoru sürmekte kullanılan elektronik bir devre ve motor gücünü arttırmakta kullanılan plastik veya metal diĢlilerden oluĢan servo motor çeĢididir. RC servo motorların elektronik sürücüsü kendi içerisinde bulunduğu için ve fazla akım çekmedikleri için mikrodenetleyiciler ile de direkt olarak sürülebilirler. RC servoların çalıĢma gerilimleri 4,8 - 6V civarındadır ve standart RC servonun gücü 1 cm/3.5 kg’ dır. Bu değer servonun miline bağlanacak kolun merkezden uzaklığının 1 cm olduğunda servonun bu kola 3.5 kg güç verebileceği anlamına gelir. Bu mesafe 3.5 cm olursa servonun uygulayabileceği güç 1 kg’ a düĢmektedir. Yani servonun miline bağlanacak kolun uzunluğu ile servonun kol gücü arasında ters orantı vardır. Benzetimde MATLAB/Simulink-Simscape ortamında fiziksel olarak modellenmiĢ servo motor kullanılmıĢtır. ġekil 4.5.' de servo motorun fiziksel modellenmesi gösterilmektedir. 32 ġekil 4.5. DC servo fiziksel modeli [21]. Servo motor kontrol elektroniği (H-Köprüsü) ve motor miline bağlı bir Ģaft diskine sahip olarak modellenmiĢtir. GiriĢ sinyali olarak uygulanan gerilim anahtarlama elemanları yardımı ile H-Köprüsü vasıtasıyla servo motora uygulanmaktadır. Anahtarlama sinyali, robot kolunun eklem noktalarına göre maksimum iletim süresi 6.6 saniye olacak Ģekilde aktif öğrenme algoritmasıyla öğrenici nöronlar tarafından üretilir. Herhangi bir hareket noktasına bağlı servo motorun sürücüsüne 6.6 saniye iletim süresine sahip bir sinyal uygulandığında, hareket noktasının 360 0 hareket ettirileceği anlamına gelir. Yani istenilen hareket açısına göre sürücüye uygulanacak sinyal 0 ile 6.6 saniye arasında değiĢmektedir. 33 ġekil 4.6.' da H-Köprüsü fiziksel modeli gösterilmiĢtir. ġekil 4.6. H-Köprüsü fiziksel modeli [21]. ġekil 4.7.' de sistemin, MATLAB/Simulink-Simscape ortamında oluĢturulmuĢ tam fiziksel modeli gösterilmektedir. 34 ġekil 4.7. Sistemin tam fiziksel modeli 35 4.4. Benzetim Sonuçları Aktif öğrenme algoritması önceki bölümde anlatılan sistemin tam fiziksel modeline uygulanmıĢtır. Robot kolunun taban, 1.eklem, 2.eklem ve kıskaç hareket noktalarının pozisyonları RC servo motorlar ile kontrol edilmiĢtir. Her hareket noktasının ulaĢması istenilen açı değerleri kontrol ara yüzünde bulunan aktif öğrenme kısmından girilmiĢtir. Ara yüz altında oluĢturulan Matlab m-file dosyasında bölüm 3' de anlatılan aktif öğrenme algoritması oluĢturulmuĢ ve her eklem noktasının ulaĢması istenilen açı değerleri için gerekli motor anahtarlama sinyalleri ilgili bu algoritma ile öğrenen nöronlar tarafından üretilmiĢtir. Benzetimde taban için 120 0, 1.eklem için 750, 2.eklem için 400 ve kıskaç için 2500 referans açı değerleri seçilerek nöronların bu açı değerleri için RC servo motor anahtarlama sinyallerini deneyerek bulmaları sağlanmıĢtır. Çizelge 4.1.' de 1200 referans değerine göre taban servo motoru için alınan değerler verilmiĢtir. Çizelge 4.1. Taban servo motoru için alınan veriler Ġterasyon Ağırlık Değeri Nöron ÇıkıĢı Motor Açısı 1 2 3 4 5 6 7 8 9 10 0.127 0.0615 0.0462 0.0375 0.0318 0.0277 0.0246 0.0221 0.0201 0.0185 15.238 7.389 5.543 4.505 3.819 3.326 2.952 2.657 2.418 2.221 831.156 403.033 302 245 208.307 181.416 161.016 144.926 131.889 121.144 ġekil 4.8.' de taban servo motoru için alınan verilerden elde edilen iterasyon sayısı motor açısı grafiği verilmiĢtir. 36 ġekil 4.8. Taban servo motoru için iterasyon-motor açısı grafiği Çizelge 4.2.' de 750 referans değerine göre 1.eklem servo motoru için alınan değerler verilmiĢtir. Çizelge 4.2 1.Eklem servo motoru için alınan veriler Ġterasyon Ağırlık Değeri Nöron ÇıkıĢı Motor Açısı 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0.1419 0.0816 0.0617 0.0503 0.0427 0.0372 0.0331 0.0298 0.0271 0.0249 0.0231 0.0215 0.0211 0.0189 0.0178 10.641 6.125 4.629 3.774 3.206 2.796 2.484 2.238 2.038 1.873 1.733 1.613 1.509 1.418 1.338 580.413 334.088 252.488 205.852 174.871 152.507 135.489 122.071 111.162 102.162 94.526 87.981 82.308 77.344 72.981 37 ġekil 4.9.' da 1.eklem servo motoru için alınan verilerden elde edilen iterasyon sayısı motor açısı grafiği verilmiĢtir. ġekil 4.9. 1.Eklem servo motoru için iterasyon-motor açısı grafiği Çizelge 4.3.' de 400 referans değerine göre 2.eklem servo motoru için alınan değerler verilmiĢtir. Çizelge 4.3. 2.Eklem servo motoru için alınan veriler Ġterasyon Ağırlık Değeri Nöron ÇıkıĢı Motor Açısı 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0.0349 0.0327 0.0308 0.0291 0.0276 0.0262 0.0250 0.0239 0.0229 0.0219 0.0211 0.0203 0.0195 0.0188 0.0182 1.398 1.311 1.234 1.166 1.105 1.0514 1.002 0.957 0.916 0.878 0.844 0.812 0.783 0.755 0.730 76.253 71.508 67.308 63.599 60.272 57.326 54.654 52.199 49.963 47.890 46.035 44.290 42.708 41.181 39.817 38 ġekil 4.10.' da 2.eklem servo motoru için alınan verilerden elde edilen iterasyon sayısı motor açısı grafiği verilmiĢtir. ġekil 4.10. 2.Eklem servo motoru için iterasyon-motor açısı grafiği Çizelge 4.4.' de 2500 referans değerine göre kıskaç servo motoru için alınan değerler verilmiĢtir. Çizelge 4.4. Kıskaç servo motoru için alınan veriler Ġterasyon Ağırlık Değeri Nöron ÇıkıĢı Motor Açısı 1 2 3 4 5 6 7 0.0318 0.0277 0.0245 0.0221 0.0201 0.0184 0.0171 7.958 6.929 6.148 5.534 5.0367 4.624 4.276 434.069 377.942 335.342 301.852 274.688 252.216 233.234 ġekil 4.11.' de kıskaç servo motoru için alınan verilerden elde edilen iterasyon sayısı motor açısı grafiği verilmiĢtir. 39 ġekil 4.11. Kıskaç servo motoru için iterasyon-motor açısı grafiği Bu tez çalıĢmasında aktif öğrenme algoritması ile alınan veriler bölüm 3' de bahsedilen algoritmada unutma faktörü φ=0.05 ve öğrenme katsayısı λ=0.0027 alınarak elde edilmiĢtir. Bu katsayılar öğrenici nöronların en iyi öğrenme performansını gösterecek Ģekilde çeĢitli denemeler yapılarak belirlenmiĢtir. 40 5. SONUÇ VE ÖNERĠLER Bu tez çalıĢmasında, yapay sinir ağlarının öğrenme türlerinden aktif öğrenme stratejisi servo motor kontrolü için kullanılmıĢtır. Katı modellemesi ve benzetimi MATLAB/Simulink ortamında Simscape yazılımı ile gerçekleĢtirilmiĢ 4 eksenli bir robot kolunun hareket noktalarının konum kontrolü servo motorlar ile sağlanmıĢtır. Aktif öğrenme algoritması servo motorların istenilen konuma gelebilmeleri için gerekli anahtarlama sinyallerinin üretilmesini sağlamıĢtır. YSA yapısı olarak, robot kolunun 4 hareket noktasına bağlı servo motorların referans açı değerleri giriĢ olacak Ģekilde 4 öğrenici nöron oluĢturulmuĢtur. Her nöronun giriĢler ile bağlantısının sağlandığı ağırlık değerleri, girilen referans açı değerlerine robot kolunun hareket noktaları ulaĢıncaya kadar aktif öğrenme algoritması ile değiĢtirilmiĢtir. Benzetimden elde edilen verilere göre taban için girilen referans açı değeri 1200 için bu noktanın anahtarlama sinyalini üreten nöron 10 iterasyon sonucunda yaklaĢık 10' lik açı hatasıyla öğrenmesini tamamlamıĢtır. 1.eklem için girilen referans açı değeri 750 için bu noktanın anahtarlama sinyalini üreten nöron 15 iterasyon sonucunda yaklaĢık 20' lik açı hatasıyla öğrenmesini tamamlamıĢtır. 2.eklem için girilen referans açı değeri 400 için bu noktanın anahtarlama sinyalini üreten nöron 15 iterasyon sonucunda yaklaĢık 10' lik açı hatasıyla öğrenmesini tamamlamıĢtır. Kıskaç için girilen referans açı değeri 2500 için bu noktanın anahtarlama sinyalini üreten nöron 7 iterasyon sonucunda yaklaĢık 20' lik açı hatasıyla öğrenmesini tamamlamıĢtır. 41 1.eklem, 2.eklem, taban ve kıskaç nöronlarının öğrenme verileri incelendiğinde, hareket noktalarının ulaĢmaları istenilen referans açı değerleri büyüdükçe nöronların aktif öğrenme süreçleri de uzamaktadır. Benzetim çalıĢmalarından elde edilen sonuçlar, motor kontrolünde, klasik YSA öğrenme türlerinin yanı sıra aktif öğrenme stratejisinin, yaparak veya deneyerek göstermiĢtir. öğrenen bir sistem oluĢturulmasında kullanılabileceğini 42 KAYNAKLAR 1. Öztemel, E., "Yapay Sinir Ağları", Papatya Yayıncılık, Ġstanbul, Ankara, Ġzmir, Adana, 21-52, (2006). 2. Fauset, L., "Fundamentals of Neural Networks (Architectures, Algorithms and Applications)", Prentice Hall,1-7, (1994). 3. Duman, N., "Yapay Sinir Ağları ve Bir Uygulama ", Yüksek Lisans Tezi, Cumhuriyet Üniversitesi Sosyal Bilimler Enstitüsü, Sivas, 111 (2006). 4. Akıncıoğlu, U., "Doğrusal Olmayan Süreç Denetim Tasarımına Yapay Sinir Ağlarının Uygulanması ", Yüksek Lisans Tezi, Ankara Üniversitesi Fen Bilimleri Enstitüsü, Ankara, 1-12, (2006). 5. Hanbay, D., "Yapay Sinir Ağı Tabanlı Akıllı Yöntemlerle KarmaĢık Sistemlerin Modellenmesi", Doktara Tezi, Fırat Üniversitesi ElektrikElektronik Mühendisliği Anabilim Dalı, Elazığ, 1: 10-11, (2007). 6. T. Hagan M., B. Demuth H., Beale M., "Neural Network Desing", PWS Publishing Company, Chine, 20-23, (2002). 7. Anderson, D., McNeil, G., "Artificial Neural Networks Technology", Kaman Sciences Corporation, Utica, 5-13, (1992). 8. Güvenç, U., "Yapay Sinir Ağı Tabanlı Bir Anahtarlamalı Relüktans Motorun Tork Dalgalanmalarının Azaltılması ", Yüksek Lisans Tezi, Gazi Üniversitesi Fen Bilimleri Enstitüsü, Ankara, 23-33, (2005). 9. Kröse, B., Smagt P., "An Introduction to Neural Networks", The University of Amsterdam, Amsterdam, 13-18, (1996) 10. Jinlin, X., Qiang, G., Weiping, J., " Reinforcement Learning for Engine Idle Speed Control", International Conference on Measuring Technology and Mechatronics Automation, China, 108-1011, (2010). 11. Klerfors, D., "Artificial Neural Networks (What are they?, How do they work?, In what areas are they used?)", An individual project with in MISB-420-0, Saint Louis University School of Business & Administration, Spain, 2-10, (1998). 12. Uğur, A., " Yapay Sinir Ağları ", Ders Notları, Ege Üniversitesi Bilgisayar Mühendisliği Bölümü, Ġzmir, 35-41, (2005). 13. Robbel, P., "Active Learning in Motor Control", Master of Science, Artificial Intelligence School of Informatics University of Edinburg, Edinburg, 18-25, (2005). 43 14. Choy, M.C., Srinivasan, D., Cheu, R.L., "Neural Networks for Continuous Online Learning and Control", IEEE Transactıons On Neural Networks, 17(6):1511-1512, (2006). 15. Juan R.R., Julian D., "Artificial Neural Networks in Real-Life Applications ", Idea Group Publishing, 8-13, (2006). 16. Li, D., Liu B., Maple, C., Jiang, D., Yue, Y., " Active Robot Learning for Building up High-order Beliefs ", IEEE Fifth International Conference on Fuzzy Systems and Knowledge Discovery, 201-202, (2008). 17. Bal, G., “Özel Elektrik Makinaları”, Seçkin Yayıncılık, Ankara, 179192 (2006). 18. Ardıç, G., Arslan, A., ve diğerleri, “Elektrik Elektronik Teknolojisi Servo Motor ve Sürücüleri”, MEGEP, Ankara, (2007). 19. Köktençiftçi, Ġ., Yalçınkaya, E., "Servo Motorun Mikrodenetleyici ile Konum ve Hız Denetimi", MYO-ÖS 2010- Ulusal Meslek Yüksekokulları Öğrenci Sempozyumu, Düzce, 4-5, (2010). 20. The MathWorks, Inc., "Simscape User's Guide", U.S.A., 12-13, (2007). 21. Ġnternet : MathWorks Company, "Simulink Desing Optimization, DC Servo Motor Parameter Estimation" http://www.mathworks.com/products/sl-designoptimization/demos.html?file=/products/demos/shipping/sldo/spe_serv omotor.html 44 ÖZGEÇMĠġ KiĢisel Bilgiler Soyadı, adı : BATTAL, Onur Uyruğu : T.C. Doğum tarihi ve yeri : 09.08.1984 Ankara Medeni hali : Evli Telefon : 0 (533) 964 30 43 ĠĢ Telefonu : 0 (384) 441 34 40 e-mail : onurbattal@nevsehir.edu.tr Eğitim Eğitim Birimi Derece Lisans Mezuniyet tarihi Gazi Üniversitesi/ Elektrik Eğitimi Bölümü Lise Sincan Teknik Lisesi 2008 2002 ĠĢ Deneyimi Yıl Yer Görev 2008-2010 Gazi Üniversitesi Asistan Öğrenci 2008-2010 Gazi Üniversitesi DıĢardan görevlendirme ile öğretim görevlisi 2010- NevĢehir Üniversitesi Yabancı Dil Ġngilizce Yayınlar Hobiler Futbol, Bilgisayar teknolojileri, Seyahat, Sinema Öğretim Görevlisi