<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Tirendaz Akademi on Medium]]></title>
        <description><![CDATA[Stories by Tirendaz Akademi on Medium]]></description>
        <link>https://medium.com/@tirendazakademi?source=rss-e9566c9f34a3------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*kmflHCCpj1_qrGGBdH3BJA.png</url>
            <title>Stories by Tirendaz Akademi on Medium</title>
            <link>https://medium.com/@tirendazakademi?source=rss-e9566c9f34a3------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 06:38:46 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@tirendazakademi/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[HuggingFace  ile Doğal Dil İşlemeye Giriş]]></title>
            <link>https://tirendazakademi.medium.com/huggingface-ile-do%C4%9Fal-dil-i%CC%87%C5%9Flemeye-giri%C5%9F-719717b4a25d?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/719717b4a25d</guid>
            <category><![CDATA[derin-öğrenme]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[doğal-dil-i̇şleme]]></category>
            <category><![CDATA[veri-bilimi]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Sat, 07 Oct 2023 21:22:51 GMT</pubDate>
            <atom:updated>2023-10-07T21:22:51.570Z</atom:updated>
            <content:encoded><![CDATA[<h4>Transformers ile NLP projelerini yapmak hiç bu kadar kolay olmamıştı.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*FviFddp7bgPZgZVEpCajkA.jpeg" /><figcaption><a href="http://freepik.com/">Image by Freepik</a></figcaption></figure><p>ChatGPT, yapay zeka alanda bir oyun değiştirici oldu. Bu yapay zeka aracı, doğal dil işleme alanındaki teknikler ile geliştirildiği sır değil.</p><p>Peki doğal dil işleme nedir?</p><p><em>Doğal dil işleme</em>, yapay zekanın bir alt alanıdır ve metin, ses verilerini analiz etmeyi amaçlar. Bu alan, İngilizce olarak kısaca NLP olarak ifade edilir.</p><p>NLP teknikleriyle insan dilini anlayabilir, yorumlayabilir ve manipüle edebilirsiniz.</p><p>Örneğin, bir e-maili, spam veya değil şeklinde sınıflandırma, sosyal medya gönderilerinin duygu analizini yapma, metin üretme, bir metni özetleme gibi görevleri doğal dil işleme teknikleri ile yapabilirsiniz.</p><p>Ama unutmayın doğal dil işleme sadece yazılı metinler ile uğraşmaz. Bu alanın computer vision yani bilgisayar görüşü ve speech recognition yani ses tanıma gibi alanlarda da uygulamaları vardır.</p><p>Örneğin bir resmi tanımlamak için metin oluşturma, ya da bir ses verisini metne çevirme gibi görevleri doğal dil işleme teknikleri ile yapabilirsiniz.</p><p>Şanslıyız ki doğal dil işleme analizleri yapmak için son zamanlarda harika kütüphaneler geliştirildi.</p><p>Bu kütüphanelerden biri de HuggingFace🤗 tarafından geliştirilen Transformers kütüphanesidir.</p><h3>Transformers nedir?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*enkl7m6UtudzkZG6N8iSEQ.png" /></figure><p>Transformers, özellikle büyük dil modelleri ile çalışmak için harika bir kütüphanedir.</p><p>Sadece bir kaç satır kod yazarak evet yanlış duymadınız sadece bir kaç satır kod ile kolayca doğal dil işleme analizleri yapabilirsiniz.</p><p>Bu analizleri yapmak için yapmanız gereken önceden eğitilmiş bir modeli almak ve bu modeli kendi veri setinize göre ayarlamak.</p><p>İşte bu kadar.</p><p>2017 yılında geliştirilen Transformer mimarisi ile son zamanlarda BERT ve GTP modellerine dayanan birçok model geliştirildi.</p><p>Bu modelleri sıfırdan eğitmek için güçlü bilgisayarlar ve zaman gerekir. Amerika&#39;yı tekrar keşfetmeye gerek yok değil mi? Bu önceden eğitilmiş modelleri Transformers kütüphanesi ile alıp kullanabilirsiniz. Böylece zamandan ve paradan tasarruf edersiniz.</p><p>Bu yazımızda Transformers ile pratik doğal dil işleme analizlerinin nasıl yapılacağını ele alacağız. Duygu analizi, zero-shot sınıflandırma, metin üretme, metindeki varlıkları bulma, soru-cevap, metin özetleme ve çeviri gibi görevleri pipeline ile nasıl yapılır inceleyeceğiz.</p><p>Kısaca Transformers ile 7 temel doğal dil işleme problemini çözeceğiz.</p><p>Bu analizler için Google ücretsiz olarak sunduğu Colab’ı kullanacağız. Ama isterseniz VS Code ya da Notebook da kullanabilirsiniz.</p><p>Doğal dil işleme analizlerini yaparken çok fazla matematiksel işlem yapıldığı için GPU gereklidir. Şanslıyız ki Colab bize ücretsiz GPU’yu desteği sağlar. Unutmadan ücretsiz GPU kullanmak için Kaggle platformunu da kullanabilirsiniz.</p><p>Hadi öncelikle Transformers kütüphanesini yükleyelim. pip ile bu kütüphaneyi yüklemek çok kolay. Yükleme yaparken ekrana çok fazla kod yazılmaması için -q flagını kullanalım.</p><pre>!pip install -q transformers</pre><p>Tamam Transformers yüklendi artık bu arkadaş ile analizler yapabiliriz.</p><p>Doğal dil işleme analizleri yapmak için en kolay yol pipeline kullanmaktır. Hadi bu sınıfı import edelim.</p><pre>from transformers import pipeline</pre><p>Harika, doğal dil işleme görevlerini yapmak her şey hazır. Artık ellerimizi kirletme vakti geldi.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zUelRQcadzRZ3HxRduXaEw.png" /><figcaption>Image by Author</figcaption></figure><h3>1. Duygu analizi</h3><p>Öncelikle duygu analizi ile başlayalım. Duygu analizi, pozitif veya negatif gibi bir metnin duygusunu çıkarmaktır. Bu analizi yapmak için pipeline’dan bir örnek alalım.</p><pre>classifier = pipeline(&quot;sentiment-analysis&quot;)</pre><p>Pipeline, duygu analizi için varsayılan bir ön eğitimli modeli ve bu modelin tokenizer’ını HuggingFace 🤗 Hub’dan indirdi ve önbelleğe yükledi. Artık bu objeyi istediğimiz metnin duygusunu çıkarmak için kullanabiliriz.</p><p>Hadi bir metin alalım ve bu metnin duygusunu bulalım.</p><pre>text = &quot;It&#39;s great to learn NLP for me&quot;</pre><p>Şimdi pipeline’ımız ile bu metnin duygusunu bulalım.</p><pre>classifier(text)<br><br># Output:<br>[{&#39;label&#39;: &#39;POSITIVE&#39;, &#39;score&#39;: 0.999805748462677}]</pre><p>Bu komutu çalıştırdığımızda metnin etiketi ve skoru ekrana yazılır. Bu çıktı bize metnin yüzde 99 olasılıkla pozitif olduğunu söylüyor.</p><p>Çok basit değil mi?</p><p>İsterseniz çıktıyı Pandas DataFrame formatına çevirebiliriz.</p><pre>import pandas as pd<br>outputs = classifier(&quot;It&#39;s great to learn NLP for me.&quot;)<br>pd.DataFrame(outputs)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/891/1*pDaFQKfOrZS3bA5tFK_9tA.png" /></figure><p>İşte etiket ve skor karşımıza geldi. Harika değil mi? Bir kaç satır kod ile duygu analizini yaptık.</p><p>Şimdi başka bir pipeline kullanarak zero-shot sınıflandırma nasıl yapılır bakalım.</p><h3>2. Zero-Shot Sınıflandırma</h3><p>Diyelim ki etiketi olmayan verileriniz var bu verileri sınıflandırmak istiyorsunuz. Bu analizi yapmak için bir zero-shot pipeline kullanabiliriz.</p><p>Genellikle ön eğitimli modeller eğitilirken etiketli veriler kullanılır. Size iyi haberim şu ki sınıflandırma yaparken modelin eğitildiği verilerin etiketlerini kullanmayabilirsiniz.</p><p>Bunun nasıl yapıldığını göstermek için hadi zero-shot-classification için bir pipeline alalım.</p><pre>classifier = pipeline(&quot;zero-shot-classification&quot;)</pre><p>Tamam, pipeline’ımızı ayarladık. Hadi sınıflama yapmak için bir metin alalım.</p><pre>text = &quot;This is a tutorial about Hugging Face.&quot;</pre><p>Süper, metnimiz hazır. Şimdi aday etiketlerimizi belirleyelim.</p><pre>candidate_labels = [&quot;tech&quot;, &quot;education&quot;, &quot;business&quot;]</pre><p>Muhteşem, etiketlerimizi belirledik ve bir değişkene atadık. Şimdi pipeline’ımıza metni ve etiketleri verelim ve tahminleri DataFrame formatına çevirelim.</p><pre>classifier(text, candidate_labels)<br>outputs = classifier(text, labels)<br>pd.DataFrame(outputs)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/819/1*-UmG0WmLpxXq1zuJHTgAvw.png" /></figure><p>Gördüğünüz gibi etiketlerin olasılıkları yazıldı. En yüksek olasılıklı etiket <em>education</em> çıktı.</p><p>Dikkat ederseniz verimize göre modeli <em>fine-tune</em> etmeden tahmin yaptık. Pipeline direk olarak olasılık değerlerini hesapladı.</p><p>Hatırlayın, modelde etiketler yoktu etiketleri biz belirledik. Bundan dolayı bu analize <strong>zero-shot sınıflandırma</strong> denir.</p><p>Tamam, kendimiz etiketleri belirleyerek nasıl tahminler yaptırabileceğimizi gördük.</p><p>Hadi devam edelim ve metin üretme görevi nasıl yapılır bakalım.</p><h3>3. Metin Üretme</h3><p>İtiraf edelim hepimiz ChatGPT gibi yapay zeka araçları ile metin üretiyoruz.</p><p>Ama bazen bir konu hakkında kendiniz metin üretmek isteyebilirsiniz. Metin üretmenin amacı anlamlı cümleler oluşturmaktır. Bunu yapmak için önce bir pipeline oluşturalım.</p><pre>generator = pipeline(&quot;text-generation&quot;)</pre><p>Şimdi bu modele bir prompt verelim. Bunun için bir prompt oluşturalım.</p><pre>prompt= &quot;This tutorial will walk you through how to&quot;</pre><p>Şimdi bu promptu modele verelim ve metni otomatik olarak tamamlamasını isteyelim.</p><pre>outputs = generator(prompt)<br>print(outputs)<br><br># Output:<br>[{&#39;generated_text&#39;: &quot;This tutorial will walk you through how to create a basic application that allows you to start with a simple login experience through a browser window or similar.\n\nCreating a Simple App using Django&#39;s Web UI\n\nFirst, we&#39;ll build a simple app&quot;}]</pre><p>Gördüğünüz gibi pipeline’daki ön tanımlı model ile metin tamamlandı.</p><p>İsterseniz metnin uzunluğunu belirleyebilirsiniz. Hadi metnin uzunluğunu 50 ile sınırlandıralım. Ayrıca çıktının ilk bileşenini alalım. Böylece çıktıyı daha iyi görürüz.</p><pre>outputs = generator(prompt, max_length=50)<br>print(outputs[0][&#39;generated_text&#39;])<br><br># Output:<br>This tutorial will walk you through how to design your &quot;troubleshooting&quot; console (also known as &quot;console manager&quot;). All you have to do is configure your Console Manager via:</pre><p>Veee ön tanımlı modele göre metin üretildi. Burada rasgele bir metin ürettik. Bu komutu her çalıştırdığımızda farklı bir metin üretilir.</p><p>İsterseniz farklı bir model ile metin üretebilirsiniz. HuggingFace 🤗 Hub da bir çok kullanabileceğiniz model var.</p><p>Hadi model hub’a gidelim.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*va1LjHdF7tYBn00QTI3waQ.png" /><figcaption>HuggingFace 🤗 Hub</figcaption></figure><p>Sol taraftan metin üretme görevini seçelim. Model olarak GPT tabanlı bir model kullanmak isteyelim.</p><p>GPT kadar etkili ama biraz daha küçük distilgpt2 modelini arama kısmına yazalım.</p><p>Model kartta, bu modelin GPT2&#39;nin daha küçük versiyonu olduğu yazıyor. Model hakkında diğer bilgileri bu karttan görebilirsiniz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r0iRyYIpRUa8gyXmerER9A.png" /><figcaption><a href="https://huggingface.co/distilgpt2">DistilGPT2</a></figcaption></figure><p>Hadi bu modeli kopyalayalım ve indirmek için pipeline kullanalım.</p><pre>generator = pipeline(&quot;text-generation&quot;, model=&quot;distilgpt2&quot;)</pre><p>Harika, modelimiz analiz için hazır. Hadi şimdi bu modele göre bir metin üretelim.</p><pre>prompt= &quot;This tutorial will walk you through how to&quot;<br>outputs = generator(prompt, max_length=50)<br>print(outputs[0][&#39;generated_text&#39;])<br><br># Output:<br>&quot;&quot;&quot;&quot;<br>This tutorial will walk you through how to achieve more details with the tutorials shown below.<br><br>Please also notice these links have the new default code:<br>1. Change the default code to the first command.<br>2. Change the default code to<br>&quot;&quot;&quot;<br></pre><p>Gördüğünüz gibi spesifik bir model kullanarak verdiğimiz prompta göre metin üretildi.</p><p>Harika, metin üretme pratik şekilde nasıl yapılır gördük.</p><p>Hadi devam edelim ve varlık ismi tanıma denen NER görevini nasıl yapılır bakalım.</p><h3>4. Named Entity Recognition (NER)</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ChvJwIhfVoSlX2ZRvVDPkg.png" /><figcaption><a href="https://towardsdatascience.com/named-entity-recognition-and-classification-with-scikit-learn-f05372f07ba2">NER Analizi</a></figcaption></figure><p>Doğal dil işleme dünyasında ürünler, yerler, insanlar gibi gerçek dünya objeleri named entities yani isimlendirilmiş varlıklar olarak adlandırılır.</p><p>Bu objeleri, metinden çıkarmaya ise <strong>named entity recognition yani varlık ismi tespiti</strong> denir.</p><p>Bu yazıda bu analize kısaca NER diyelim.</p><p>NER ile bir metindeki isim, yer, ürün gibi objeleri etiketleyebiliriz.</p><p>Hadi basit bir metin alalım ve bu metindeki objelerin etiketlerini çıkarmak isteyelim.</p><p>Öncelikle NER analizi yapmak için bir pipeline oluşturalım.</p><pre>ner = pipeline(&quot;ner&quot;, grouped_entities=True)</pre><p>Tamam ön tanımlı modeli indirdik. Şimdi bir metin alalım.</p><pre>text = &quot;My name is Tirendaz from Turkey. HuggingFace is a nice platform.&quot;</pre><p>Hadi bu metni pipeline’a verelim.</p><pre>ner_tagger = pipeline(<br>    &quot;ner&quot;, <br>    # Modelin tahminlere göre kelimeleri gruplaması için<br>    aggregation_strategy=&quot;simple&quot;)</pre><p>Ardından bulunan daha iyi görmek için sonuçları DataFrame formatına çevirelim.</p><pre>import pandas<br>pd.DataFrame(outputs)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/828/1*skyogzZsxXIwrso71UeuMw.png" /></figure><p>Gördüğünüz gibi metinde geçen yer, kişi, organizasyon isimleri bulundu.</p><p>Pipeline ile NER analizi yapmak ne kadar kolay oldu değil mi? Sadece bir kaç satır kod ile analizi bitirdik.</p><p>Hadi devam edelim ve soru-cevap analizleri nasıl yapılır bakalım.</p><h3>5. Soru-Cevap</h3><p>Soru-cevap projelerini yapmak için context olarak adlandırılan bir metin parçasını ve bir soruyu modele veririz. Model metne göre sorunun cevabını döndürür.</p><p>Bunu göstermek için hadi bir pipeline oluşturalım.</p><pre>reader = pipeline(&quot;question-answering&quot;)</pre><p>Şimdi bir metin alalım.</p><pre>text = &quot;My name is Tirendaz and I love Berlin.&quot;</pre><p>Ardından bir soru oluşturalım.</p><pre>question=&quot;Where do I like?&quot;</pre><p>Tamam, metin ve soru değişkenlerimizi oluşturduk. Şimdi bu değişkenleri pipeline’ımıza verelim.</p><pre>outputs = reader( question=question, context=text)</pre><p>Hadi sonucu daha iyi görmek için verileri DataFrame çevirelim.</p><pre>pd.DataFrame([outputs])</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/687/1*sI3JxyScZSjNk8xrjveUoA.png" /></figure><p>Gördüğünüz gibi soru verdiğimiz metne göre cevaplandırıldı. Cevabın yeri bile gösterildi.</p><p>Harika değil mi? Pipeline ile soru cevap görevlerini bu şekilde yapıyoruz.</p><p>Dikkat ederseniz mantık hep aynı. Bir görev için pipeline oluştur. Bu pipeline ile analizi yap.</p><p>Hadi metin özetleme nasıl yapılır bakalım.</p><h3>6. Metin Özetleme</h3><p>Metin özetlemenin amacı bildiğiniz gibi uzun metinleri özetlemek. Bunun için modele bir metin veririz ve model, metnin özet bir versiyonunu bize verir.</p><p>Bu görev, diğer NLP görevlerinden daha kompleks. Ama bu görevi pipeline ile yapmak çok kolay. Bunu göstermek için öncelikle bir pipeline oluşturalım.</p><pre>summarizer = pipeline(&quot;summarization&quot;)</pre><p>Ardından bir metin alalım. Örneğin, Wikipedia’daki MrBeast başlığından bir parça kullanalım.</p><pre>text =&quot;&quot;&quot; James Stephen Donaldson[b] (born May 7, 1998), known professionally as MrBeast (or Jimmy Donaldson), is an American YouTuber, entrepreneur and philanthropist. He is credited with pioneering a genre of YouTube videos that centers on expensive stunts and challenges.[12] With over 184 million subscribers as of September 18, 2023,[13] he is the most-subscribed individual user on the platform and the second-most-subscribed channel overall,[14][15] and has ranked on the Forbes list for the highest paid YouTube creator in 2022.[16]<br>Donaldson grew up in Greenville, North Carolina. He began posting videos to YouTube in early 2012, at the age of 13,[17] under the handle MrBeast6000. His early content ranged from Let&#39;s Plays to &quot;videos estimating the wealth of other YouTubers&quot;.[18] He went viral in 2017 after his &quot;counting to 100,000&quot; video earned tens of thousands of views in just a few days, and he has become increasingly popular ever since, with most of his videos gaining tens of millions of views.[18] His videos, typically involving challenges and giveaways, became increasingly grand and extravagant.[19] Once his channel took off, Donaldson hired some of his childhood friends to co-run the brand. As of 2023, the MrBeast team is made up of over 250 people, including Donaldson himself.[20][21] Other than MrBeast, Donaldson runs the YouTube channels Beast Reacts, MrBeast Gaming, MrBeast 2 (formerly MrBeast Shorts),[22] and the philanthropy channel Beast Philanthropy.[23][24] He formerly ran MrBeast 3 (initially MrBeast 2), which is now inactive.[25][26] As of 2023, he is the highest paid YouTuber,[27] and has an estimated net worth of $500 million.[28]<br>Donaldson is the founder of MrBeast Burger and Feastables; and a co-creator of Team Trees, a fundraiser for the Arbor Day Foundation that has raised over $23 million;[29][30] and Team Seas, a fundraiser for Ocean Conservancy and The Ocean Cleanup that has raised over $30 million.[31] Donaldson won the Creator of the Year award four times at the Streamy Awards in 2020, 2021, 2022, and 2023; he also won the Favorite Male Creator award twice at the Nickelodeon Kids&#39; Choice Awards in 2022 and 2023. In 2023, Time magazine named him as one of the world&#39;s 100 most influential people.&quot;&quot;&quot;</pre><p>Tamam özetlenecek metnimiz, text değişkenine atadık. Şimdi pipeline kullanarak özetleme yapalım.</p><pre>outputs = summarizer(<br>    text, <br>    # Maksimum uzunluğu belirleyelim:<br>    max_length=60, <br>    # Çıktıdaki ekstra boşlukları kaldıralım:<br>    clean_up_tokenization_spaces=True)</pre><p>Tamam metnin özetini yaptırdık. Şimdi çıktıdaki ilk boyutun özet metnini görelim.</p><pre>print(outputs[0][&#39;summary_text&#39;])<br><br># Output:<br>&quot;&quot;&quot;<br>James Stephen Donaldson, known as MrBeast, is an American YouTuber, entrepreneur and philanthropist. He is credited with pioneering a genre of YouTube videos that centers on expensive stunts and challenges. With over 184 million subscribers as of September 18, 2023, he is the most<br>&quot;&quot;&quot;</pre><p>Gördüğünüz gibi metin özetlenmiş oldu. Özet çok kötü değil mi? Pipeline ile özetleme görevini de bu şekilde yapmış olduk.</p><p>Hadi devam edelim ve en son çeviri görevi nasıl yapılır bakalım.</p><h3>7. Çeviri</h3><p>Çeviride bildiğiniz gibi bir dildeki bir metin alınır ve diğer dildeki bir metne çevrilir.</p><p>Bu görev bir seq-to-seq yani diziden diziye görevidir. Yani modele bir dizi veririz ve modelden bir dizi alırız.</p><p>Bunu göstermek için hadi bir pipeline alalım.</p><pre>translator = pipeline(&quot;translation_en_to_de&quot;)</pre><p>Tamam, pipeline’ımızı oluşturduk. Hadi devam edelim ve bir metin alalım.</p><pre>text = &quot;I hope you enjoy it.&quot;</pre><p>Ve bu metnin çevirisini yapalım.</p><pre>outputs = translator(text, clean_up_tokenization_spaces=True)<br>print(outputs[0][&#39;translation_text&#39;])<br><br># Output:<br>Ich hoffe, Sie genießen es</pre><p>Süper, gördüğünüz gibi çeviri yapıldı.</p><p>Sizde, istediğiniz bir dilden başka bir dile çeviri yapabilirsiniz.</p><p>Örneğin Türkçeden İngilizceye mi çeviri yapmak istiyorsunuz o zaman <a href="https://huggingface.co/models">model hub</a> gidin, bu görevi yapan modeli bulun ve pipeline’da bu modeli kullanın. İşte bu kadar basit.</p><h3>Sonuç</h3><p>HuggingFace 🤗 doğal dil işleme analizleri için harika bir platform. Bu platform içindeki Transformers kütüphanesi ile doğal dil işleme projelerinizi kolayca yapabilirsiniz.</p><p>Bu blog yazısında Transformers içindeki pipeline’lar ile doğal dil işleme görevleri, bir kaç kod satırı ile nasıl yapılır gördük.</p><p>HuggingFace 🤗 ekosistemi ile doğal dil işlemenin inceliklerini öğrenmek için <a href="https://www.udemy.com/course/hugging-face-ile-dogal-dil-isleme/?referralCode=9A49C8B8EC999613AB26">Udemy kursumuzu</a> şiddetle tavsiye ederim.</p><p>Aşağıdaki yazılar da dikkatinizi çekebilir.</p><ul><li><a href="https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-yol-haritas%C4%B1-9fb9f90f5f17">Derin Öğrenme Yol Haritası</a></li><li><a href="https://tirendazakademi.medium.com/makine-%C3%B6%C4%9Frenmesi-yol-haritas%C4%B1-2023-4418c290fc00">Makine Öğrenmesi Yol Haritası 2023</a></li></ul><p>Bu derste kullandığım notebook ’un linkine <a href="https://github.com/TirendazAcademy/Hugging-Face-Tutorials/blob/main/Introduction-to-Transformers/Pratical-NLP-with-Tranformers.ipynb">buradan</a> ulaşabilirsiniz.</p><p>Hadi bağlanalım <a href="https://youtube.com/c/tirendazakademi">YouTube</a>, <a href="https://twitter.com/TirendazAkademi">Twitter</a>, <a href="https://www.instagram.com/akademitirendaz">Instagram</a>, <a href="https://www.linkedin.com/in/tirendaz-academy">Linkedin</a>.</p><p>Gelecek makalelerde görüşmek üzere. Şimdilik hoşça kalın.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=719717b4a25d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2023 Veri Bilimi Trendleri ve Maaşları]]></title>
            <link>https://tirendazakademi.medium.com/2023-veri-bilimi-maa%C5%9Flar%C4%B1-711fc01f0f09?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/711fc01f0f09</guid>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[veri-mühendisliği]]></category>
            <category><![CDATA[teknoloji]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[veri-bilimi]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Wed, 03 May 2023 15:06:13 GMT</pubDate>
            <atom:updated>2023-05-10T17:54:17.375Z</atom:updated>
            <content:encoded><![CDATA[<h4>Python ile veri bilimi maaşları veri setini kullanarak veri görselleştirme</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*V-P_DXeXcnol5CeL" /><figcaption>Photo by <a href="https://unsplash.com/@sharonmccutcheon?utm_source=medium&amp;utm_medium=referral">Alexander Grey</a> on <a href="https://unsplash.com/?utm_source=medium&amp;utm_medium=referral">Unsplash</a></figcaption></figure><p>Veri analizinin en önemli aşamalarından biri veri görselleştirmedir. Veri görselleştirme ile verilerinizi daha iyi anlayabilir ve harika modeller kurabilirsiniz.</p><p>Bu yazıda, 2023 veri bilimi maaşları veri setini kullanarak veriye dayalı meslekleri inceleyeceğiz. Makalenin sonunda bu meslekler ile ilgili bazı tavsiyelerde bulunacağım.</p><p>Hadi verimizi yüklemek ile başlayalım.</p><h3>Veri Setini Yükleme</h3><p>Kullanacağımız veri seti Kaggle’da bulunan veri bilimi maaşları 2023 veri seti.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iVoM4hhlDzuPMBAHyvrjmg.png" /><figcaption><a href="https://www.kaggle.com/datasets/arnabchaki/data-science-salaries-2023">Veri seti</a></figcaption></figure><p>İlk önce veri setini yükleyelim. Veri setini yüklemek için Pandas kütüphanesini kullanalım. Bu kütüphane veri manipülasyonu yapmak için harika bir kütüphanedir.</p><pre>import pandas as pd</pre><p>Bu derste kullandığım notebook’un linkine <a href="https://www.kaggle.com/code/tirendazacademy/eda-visualization-on-data-science-salaries">buradan</a> ulaşabilirsiniz. Şimdi bu kütüphane içindeki read_csv metodu ile veri setini yükleyelim.</p><pre>df=pd.read_csv(&#39;ds_salaries.csv&#39;)</pre><p>Veri setinizin notebook ile aynı dizinde olduğuna dikkat edin. Şimdi veri setinin ilk 5 satırını görelim. Bunun için head metodunu kullanalım.</p><pre>df.head()</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/977/1*mmn8un1XpjQ9ox-EXbLq5Q.png" /></figure><p>Gördüğünüz gibi veri setinde çalışma yılı, senior, junior gibi tecrübe seviyesi, uzaktan çalışma, sözleşme gibi çalışma şekli, meslek ismi, maaş ve şirket lokasyonu gibi sütunlar var.</p><p>Tamam veri seti kısaca tanıdık. Şimdi veri setindeki satır ve sütun sayılarına bakalım. Bunun için shape metodunu kullanalım.</p><pre>print(&quot;Number of rows and columns in the dataset:&quot;,df.shape)<br><br># Output<br>Number of rows and columns in the dataset: (3755, 11)</pre><p>Gördüğünüz gibi veri setinde 3755 satır ve 11 sütun var. Şimdi veri setinin sütunlarının özelliklerini inceleyelim. Bunun için info metodunu kullanalım.</p><pre>df.info()</pre><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/c53222e19c47933ed46b3d505fb7dcb2/href">https://medium.com/media/c53222e19c47933ed46b3d505fb7dcb2/href</a></iframe><p>Burada sütunların isimlerini, sütun sayılarını, eksik verileri ve sütun tiplerini görebilirsiniz. Gördüğünüz gibi sütunlarda eksik veri yok. Eksik verileri kontrol etmek için isnull metodunu kullanabiliriz. Hadi bunu gösterelim.</p><pre>print(&quot;Number of missing data in the dataset:&quot;,df.isnull().sum().sum())<br><br># Output<br>Number of missing data in the dataset: 0</pre><p>Unutmayın, bir sum metodu ile her bir sütundaki eksik verileri iki sum metodu kullanarak tüm veri setindeki eksik verileri görebiliriz. Burada gördüğünüz gibi veri setinde eksik veri yok.</p><p>Harika, veri setimiz gayet temiz. Tabi her zaman veri setleri böyle temiz olmaz. Verileri nasıl veri ön işleme yapıp temizleyeceğinizi <a href="https://www.youtube.com/channel/UCzH73XJRgK2EQ7COnG8DkyA">kanalımızdaki</a> veri bilimi derslerinde bulabilirsiniz.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FRlK0dCVCr_s%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DRlK0dCVCr_s&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FRlK0dCVCr_s%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/32675d9fead22a6423075fea819b380a/href">https://medium.com/media/32675d9fead22a6423075fea819b380a/href</a></iframe><p>Şimdi devam edelim ve sütunlardaki tek değerlere bakalım.</p><pre>print(df.nunique())</pre><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/61fb6eac36cdc30bd9f423aaada99df8/href">https://medium.com/media/61fb6eac36cdc30bd9f423aaada99df8/href</a></iframe><p>Vee sütunlardaki unique değerlerin sayısı ekrana yazıldı. Mesela yıl sütundaki tek değerlere bakalım.</p><pre>df[&quot;work_year&quot;].value_counts()<br><br># Output<br>2023    1785<br>2022    1664<br>2021     230<br>2020      76<br>Name: work_year, dtype: int64</pre><p>Gördüğünüz gibi veri setinde 2020&#39;den 2023&#39;e kadar 4 yıl var.</p><p>Süper. Şimdiye kadar veri setini yükledik ve veri setini tanımak için bazı metotları kullandık.</p><h3>2023&#39;deki En İyi 10 Meslek</h3><p>Hadi şimdi 2023&#39;de en fazla talep gören ilk 10 mesleğe bakalım. Öncelikle 2023 yılını ve job_title sütununu seçelim. Ardından bu en fazla tercih edilen ilk 10 mesleği alalım.</p><pre>jobs = df[df[&#39;work_year&#39;]==2023][&#39;job_title&#39;].value_counts().nlargest(10).reset_index()</pre><p>Tamam, en fazla 10 mesleği seçtik. Şimdi bu mesleklerin sütun grafiğini çizdirelim. Bunun için matplotlib ve seaborn kütüphanelerini kullanalım. Bu kütüphaneler veri görselleştirme için harikadır. Bu kütüphaneleri A’dan Z’ye öğrenmek için kanalımızdaki <a href="https://www.youtube.com/playlist?list=PLfMRLSpipmftxkCN8pd3MFcBObhSpNW2c">veri görselleştirme derslerini</a> izleyebilirsiniz.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FUM2IuGsj9I4&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DUM2IuGsj9I4&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FUM2IuGsj9I4%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/8527e15a4904b058cf5bd68d4345492a/href">https://medium.com/media/8527e15a4904b058cf5bd68d4345492a/href</a></iframe><p>Bu kütüphaneleri kullanmak için öncelikle import edelim.</p><pre>import matplotlib.pyplot as plt<br>import seaborn as sns</pre><p>Ardından grafiklerin özelliklerini ayarlayalım.</p><pre>sns.set_theme()<br>sns.set(rc = {&quot;figure.figsize&quot;:(10,6), &quot;figure.dpi&quot;:300})</pre><p>Harika grafik özelliklerini ayarladık. Şimdi devam edelim ve ilk 10 mesleğin grafiğini çizdirelim.</p><pre>fig, ax = plt.subplots()<br>ax = sns.barplot(ax = ax, data=df, y = jobs[&#39;index&#39;], x = jobs.job_title)<br>ax.set(ylabel=&#39;Job Titles&#39;,xlabel=&#39;Counts&#39;, title=&#39;Top 10 Job Titles in 2023&#39;)<br>ax.bar_label(ax.containers[0], padding = 2)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5sWQI6x_wLoU9wlf1pm7tg.png" /></figure><p>Gördüğünüz gibi en fazla veri mühendisi var daha sonra veri bilimci geliyor. Şaşırdık mı hayır. Çünkü veri mühendisliği yeni trend.</p><p>Veri mühendisi ne iş yapar diye sorabilirsiniz. Veri mühendisleri, kabaca verileri analize hazır hale getirir. Veri bilimi projelerinde veri mühendisleri kritik bir rol oynar.</p><p>Tamam ilk 10 mesleği gördük. Şimdi devam edelim ve tecrübe seviyelerine bakalım.</p><h3>Deneyim Düzeyleri</h3><p>Öncelikle deneyim sütunundaki tek değerle bakalım.</p><pre>df[&#39;experience_level&#39;].unique()<br><br># Output<br>array([&#39;SE&#39;, &#39;MI&#39;, &#39;EN&#39;, &#39;EX&#39;], dtype=object)</pre><p>Gördüğünüz gibi 4 farklı tecrübe kategorisi var. Bu değerler kısaltılmış halde. Bunların uzun değerlerini yazalım.</p><pre>df[&#39;experience_level&#39;] = df[&#39;experience_level&#39;].replace(&#39;EN&#39;,&#39;Junior&#39;)<br>df[&#39;experience_level&#39;] = df[&#39;experience_level&#39;].replace(&#39;MI&#39;,&#39;Mid-level&#39;)<br>df[&#39;experience_level&#39;] = df[&#39;experience_level&#39;].replace(&#39;SE&#39;,&#39;Senior&#39;)<br>df[&#39;experience_level&#39;] = df[&#39;experience_level&#39;].replace(&#39;EX&#39;,&#39;Director&#39;)</pre><p>Tamam, tecrübe değerlerinin isimlerini değiştirdik. Şimdi bunların sayısının sütun grafiğini çizdirelim.</p><pre>fig, ax = plt.subplots()<br>sns.countplot(ax = ax, data = df, x = df.experience_level)<br>ax.set(xlabel=&#39;&#39;, ylabel=&#39;Counts&#39;, title=&#39;Experience Levels&#39;)<br>ax.bar_label(ax.containers[0])</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IBVloNgWPp1ni1pr3orWFg.png" /></figure><p>Gördüğünüz gibi en fazla senior daha sonra mid-level ve Junior var. En az sayıda ise director var.</p><p>Harika. Deneyim seviyelerini gördük. Şimdi devam edelim ve istihdam türlerine bakalım.</p><h3>İstihdam Türleri</h3><p>Veri biliminde bir kaç istihdam türü var. Bunları görmek için öncelikle istihdam türleri sütununu ele alalım.</p><pre>df[&#39;employment_type&#39;].unique()<br><br># Output:<br>array([&#39;FT&#39;, &#39;CT&#39;, &#39;FL&#39;, &#39;PT&#39;], dtype=object)</pre><p>Gördüğünüz gibi 4 istihdam türü var. Bunların isimlerini değiştirelim.</p><pre>df[&#39;employment_type&#39;] = df[&#39;employment_type&#39;].replace(&#39;FT&#39;,&#39;Full-Time&#39;)<br>df[&#39;employment_type&#39;] = df[&#39;employment_type&#39;].replace(&#39;PT&#39;,&#39;Part-Time&#39;)<br>df[&#39;employment_type&#39;] = df[&#39;employment_type&#39;].replace(&#39;CT&#39;,&#39;Contract&#39;)<br>df[&#39;employment_type&#39;] = df[&#39;employment_type&#39;].replace(&#39;FL&#39;,&#39;Freelance&#39;)</pre><p>Şimdi deneyim düzeylerine göre her bir istihdam türünün sayılarını görelim.</p><pre>fig, ax = plt.subplots()<br>sns.countplot(ax = ax, data = df, x = df.employment_type, hue = &#39;experience_level&#39;)<br>ax.set(xlabel=&#39;&#39;, ylabel=&#39;Counts&#39;, title=&#39;Employmnetn Types Count&#39;)<br>ax.bar_label(ax.containers[0])<br>ax.bar_label(ax.containers[1])<br>ax.bar_label(ax.containers[2])<br>ax.bar_label(ax.containers[3])</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*AZrfiQTreF2aL8-7VIDmug.png" /></figure><p>Gördüğünüz gibi full time çalışan en fazla senior. Daha sonra mid-level ve Junior. Yine en az sayıda director var.</p><p>Tamam, çalışma kategorilerine baktık. Şimdi tecrübe seviyelerine göre ortalama maaşlara bakalım.</p><h3>Deneyim Düzeylerine Göre Ortalama Maaşlar</h3><p>Deneyim düzeylerine göre ortalama maaşlar farklılık gösterir. Bu farklılığı görmek için öncelikle çalışma tipine göre verileri gruplayalım ve salary-in-usd sütununu seçelim. Bunların ortalamasını alalım ve 0. basamağa göre yuvarlayalım. Bu değerleri azalana göre sıralayalım. En son indeksleri resetleyelim. En son sütun grafiğimizi çizdirelim.</p><pre>avg_salaries = df.groupby(&#39;employment_type&#39;)[&#39;salary_in_usd&#39;].mean().round(0).sort_values(ascending = False).reset_index()<br>fig, ax = plt.subplots()<br>sns.barplot(ax =ax,data = df , x = &#39;employment_type&#39;, y = &#39;salary_in_usd&#39;,errorbar = None, hue = &#39;work_year&#39;)<br>ax.set(xlabel=&#39;&#39;, ylabel=&#39;Dollars&#39;, title=&#39;Average Salaries in Dollars Per Year&#39;)<br>ax.bar_label(ax.containers[3], padding = 2)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DLxMMSji7ymHta6konzOUw.png" /></figure><p>Kırmızı ile gösterilen 2023 ortalama maaşlar. Beklediğimiz gibi ortalama olarak en çok full-time çalışanlar maaş alıyor. Daha sonra freelance çalışanlar. En son yıllara göre maaş ortalamalarına bakalım.</p><h3>Yıllara Göre Maaş Ortalamaları</h3><p>Son yıllarda veriye dayalı meslekler çok popüler oldu. Bunun maaşların yansımasına bakalım. Öncelikle maaşları seçelim ardından yıllara göre bu verileri gruplayalım ve mean metodu ile ortalamalarını bulalım.</p><pre>year_based_salary = df[&#39;salary_in_usd&#39;].groupby(df[&#39;work_year&#39;]) .mean()<br>plt.title(&quot;Average Salaries based on Work Year&quot;)<br>plt.xlabel(&#39;Work Year&#39;)<br>plt.ylabel(&#39;Salary&#39;)<br>sns.lineplot(x=[&#39;2020&#39;, &#39;2021&#39;, &#39;2022&#39;,&#39;2023&#39;], y=year_based_salary)<br>plt.show()</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4ElofzQtVJZQ0Ii5yMJiUg.png" /></figure><p>Gördüğünüz gibi her sene veriye dayalı mesleklerin ortalama maaşları artıyor. Özellikle 2021&#39;den 2022&#39;ye büyük bir sıçrama olmuş.</p><h3>Son Sözler</h3><p>Bu makalede, veriye dayalı mesleklerin maaşlarını inceledik. Son yıllarda üretilen verinin artması ile veriye dayalı meslekler çok popüler oldu. En çok talep gören alan veri mühendisliği. Daha sonra veri bilimi.</p><p>Sonuç olarak araştırmayı seviyorsanız veri bilimci olmanızı tavsiye ederim. Model kurmayı ve modeli canlıya almayı seviyorsanız makine öğrenmesi mühendisliğine yönelebilirsiniz. Verileri analiz etmeyi seviyorsanız veri analistliği tam size göre. Eğer bulut bilişim, veri tabanları, programlama gibi alanlara ilginiz varsa veri mühendisliğini öneririm.</p><p>Makaleyi okuduğunuz için teşekkür ederim. Bu derste kullandığım notebook’un linkine <a href="https://www.kaggle.com/code/tirendazacademy/eda-visualization-on-data-science-salaries">buradan</a> ulaşabilirsiniz. Hadi bağlanalım: <a href="https://youtube.com/c/tirendazakademi">YouTube</a> | <a href="https://www.udemy.com/user/tirendaz-akademi-2/">Udemy</a> | <a href="https://twitter.com/TirendazAkademi">Twitter</a> | <a href="https://www.instagram.com/akademitirendaz">Instagram</a> | <a href="https://www.linkedin.com/in/tirendaz-academy">LinkedIn</a>.</p><p>Aşağıdaki yazılar da dikkatinizi çekebilir:</p><ul><li><a href="https://tirendazakademi.medium.com/makine-%C3%B6%C4%9Frenmesi-yol-haritas%C4%B1-2023-4418c290fc00">Makine Öğrenmesi Yol Haritası 2023</a></li><li><a href="https://tirendazakademi.medium.com/veri%CC%87-bi%CC%87li%CC%87mi%CC%87-nasil-%C3%B6%C4%9Freni%CC%87li%CC%87r-f959ef0c323f">VERİ BİLİMİ NASIL ÖĞRENİLİR?</a></li></ul><p>Yazıyı beğendiyseniz alttaki alkış butonuna bir kaç defa basmayı unutmayın 👏 Gelecek yazılarda görüşmek üzere. Şimdilik hoşça kalın.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=711fc01f0f09" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Keras ile Model Kaydetme & Yükleme]]></title>
            <link>https://tirendazakademi.medium.com/keras-ile-derin-%C3%B6%C4%9Frenme-modellerini-kaydetme-y%C3%BCkleme-2cdffded5bb3?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/2cdffded5bb3</guid>
            <category><![CDATA[derin-öğrenme]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[tensorflow]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[veri-bilimi]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Sat, 15 Apr 2023 10:25:23 GMT</pubDate>
            <atom:updated>2023-05-03T15:42:50.289Z</atom:updated>
            <content:encoded><![CDATA[<h4>ModelCheckpoint Callback ile derin öğrenme model ağırlıkları nasıl kaydedilir?</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M7qMYvH3T1MJteoyg1IJTA.jpeg" /><figcaption><a href="https://freepik.com/">Kaynak: Freepik</a></figcaption></figure><p>Bildiğiniz gibi derin öğrenme modellerinin eğitimi uzun zaman alır. İsterseniz, modeli eğitim esnasında ya da eğitim bittikten sonra kaydedebilirsiniz.</p><p>Bu blog yazısında Keras ile modelinizi nasıl kaydedeceğinizi ve kaydedilen modeli nasıl yükleyeceğinizi adım adım göstereceğim. Ayrıca model eğitiminde çok sık kullanılan ModelCheckpoint callbacki anlatacağım.</p><h3>Veri Setini Yükleme</h3><p>Model kaydetmeyi göstermek için MNIST veri setini kullanalım. Bu veri seti rakamların görüntülerinden oluşur.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/768/1*3vwDTuG-vJw8co06P9wgzA.png" /><figcaption><a href="http://yann.lecun.com/exdb/mnist/">MNIST dataset</a></figcaption></figure><p>MNSIT veri setini yüklemek için öncelikle TensorFlow ve Keras’ı import edelim.</p><pre>import tensorflow as tf<br>from tensorflow import keras</pre><p>Şimdi Keras’ı kullanarak eğitim ve test veri setlerini yükleyelim. Bunun için load_data metodunu kullanalım.</p><pre>(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()</pre><p>Eğitim girdi ve çıktı veri setleri 60,000 örneklemden ve test girdi ve çıktı veri setleri 10,000 örneklemden oluşuyor.</p><h3>Veri Ön İşleme</h3><p>Veri analizinin en önemli adımlarından biri veri ön işlemedir. Derin öğrenmede, normalleştirme ve regülerleştirme gibi bazı veri ön işleme teknikleri modelin performansını attırır.</p><p>Öncelikle kodları daha hızlı çalıştırmak için bu veri setlerinden ilk 1000 örneği alalım. İlk olarak çıktı değişkenleri için bunu yapalım.</p><pre>train_labels = train_labels[:1000]<br>test_labels = test_labels[:1000]</pre><p>Aynı şeyleri eğitim verileri için de yapalım. Veri örnekleri rakam resimlerinden oluşuyor. Bu resimler iki boyutlu. Bu verileri modele vermeden önce reshape metodu ile bir boyuta çevirelim. Ayrıca hem modelin performansını arttırmak hem de eğitimlerin daha hızlı olması için verileri normalleştirelim.</p><pre>train_images = train_images[:1000].reshape(-1, 28 * 28) / 255.0<br>test_images = test_images[:1000].reshape(-1, 28 * 28) / 255.0</pre><p>Tamam, veri setlerimizi modele uygun hale getirdik. Hadi devam edelim ve model kurma aşamasına geçelim.</p><h3>Model Kurma</h3><p>Keras’da model kurmak için en kolay yöntem Sequential tekniğinidir. Bu teknik ile katmanlar art arda sıralanır. Sequnetial tekniğini daha ayrıntılı öğrenmek için aşağıdaki yazıyı inceleyebilirsiniz.</p><p><a href="https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-i%C3%A7in-yapay-sinir-a%C4%9Flar%C4%B1-24edd662dc73">Derin Öğrenme için Yapay Sinir Ağları</a></p><p>Kodlarımızın daha derli toplu olması için modelimizi bir fonksiyon içinde tanımlayalım.</p><pre>def create_model():<br>  model = tf.keras.Sequential([<br>    keras.layers.Dense(512, activation=&#39;relu&#39;,input_shape=(784,)),<br>    keras.layers.Dropout(0.2),<br>    keras.layers.Dense(10)<br>  ])<br> <br>   model.compile(<br>     optimizer=&#39;adam&#39;,<br>     loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),<br>     metrics=[tf.keras.metrics.SparseCategoricalAccuracy()]<br>   )<br>   return model</pre><p>Harika, basit bir Sequential model tanımladık. Şimdi bu fonksiyondan model isminde bir örnek obje alalım.</p><pre>model = create_model()</pre><p>Şimdi modelimizin mimarisini summary metodu ile görelim.</p><pre>model.summary()</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/713/1*W2X202xJljxNjfT5r1h_qg.png" /></figure><p>Gördüğünüz gibi modelimiz bir girdi, bir regülerleştirme ve bir çıktı katmanından oluşuyor.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fpdpm8wHZkIs%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dpdpm8wHZkIs&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fpdpm8wHZkIs%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/2117077704b42374df69535bdb9dd631/href">https://medium.com/media/2117077704b42374df69535bdb9dd631/href</a></iframe><h3>ModelCheckpoint Callback ile Model Ağırlıklarını Kaydetme</h3><p>Eğittiğiniz bir modeli tekrar kullanmak için veya eğitim sürecinin kesintiye uğraması durumunda eğitime kaldığınız yerden devam etmek için modelinizi kaydedebilirsiniz.</p><p>Bildiğiniz gibi bir modeli eğitmek demek aslında modelin parametre denen ağırlıklarını kaydetmek demektir.ModelCheckpoint callback ile model eğitimi esnasında modelin ağırlıklarını kaydedebilirsiniz. Bunu göstermek için bu callbackten bir örnek alalım.</p><p>Öncelikle os modülü ile modelin kaydedileceği dizini oluşturalım.</p><pre>import os<br>checkpoint_path = &quot;training_1/my_checkpoints&quot;<br>checkpoint_dir = os.path.dirname(checkpoint_path)</pre><p>Tamam, dizinimizi oluşturduk. Şimdi modelin ağırlıklarını kaydetmek için bir callback oluşturalım.</p><pre>checkpoint_cb = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,<br>    # Modelin sadece ağırlıklarını kaydedelim<br>    save_weights_only=True)</pre><p>Harika, callbackimizi oluşturduk. Şimdi fit metodunu çağıralım ve callbackimizi bu metoda geçirelim.</p><pre>model.fit(train_images, <br>          train_labels, <br>          epochs=10,<br>          validation_data=(test_images, test_labels),<br>          callbacks=[checkpoint_cb])</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Gkzy9_8IgZBYaHBCI5lhbw.png" /></figure><p>Böylece model ağırlıklarını dizinimize kaydettik. Kullandığımız callback, her epoch sonunda checkpoint dosyalarını günceller. Hadi eğitim sonunda dizinde yer alan dosyalara bakalım.</p><pre>os.listdir(checkpoint_dir)<br><br># Output<br>[&#39;my_checkpoints.index&#39;, &#39;my_checkpoints.data-00000-of-00001&#39;, &#39;checkpoint&#39;]</pre><p>Dizinde kaydedilen dosyalar karşımıza geldi.</p><h3>Ağırlıkları Model Yükleme</h3><p>Bu ağırlıkları bir modele yükleyebiliriz. Unutmayın, kaydedilen ağırlıkları sadece aynı mimariye sahip modeller için kullanabilirsiniz.</p><p>Hadi bunu göstermek için sıfırdan bir model örneği alalım.</p><pre>model = create_model()</pre><p>Bu modelin katsayılarını henüz eğitmedik. Bu katsayılar rasgele oluşturuldu. Şimdi evaluate metodu ile bu eğitilmemiş modelin test verileri üzerindeki doğruluk skoruna bakalım.</p><pre>loss, acc = model.evaluate(test_images, test_labels, verbose=2)<br>print(f&quot;Untrained model, accuracy: {100 * acc:5.2f}%&quot;)<br><br># Output:<br>Untrained model, accuracy: 10.70%</pre><p>Gördüğünüz gibi eğitilmemiş modelin test verileri üzerindeki doğruluğu yaklaşık yüzde 10. Bu oldukça kötü bir skor.</p><p>Şimdi daha önce kaydettiğimiz ağırlıkları load_weights metodu ile modele yükleyelim ve bu modelin test verileri üzerindeki doğruluk skoruna bakalım.</p><pre>model.load_weights(checkpoint_path)</pre><p>Tamam, kaydettiğimiz ağırlıkları modele yükledik. Şimdi modeli tekrar test edelim.</p><pre>loss, acc = model.evaluate(test_images, test_labels, verbose=2)<br>print(f&quot;Untrained model, accuracy: {100 * acc:5.2f}%&quot;)<br><br>#Output:<br>Untrained model, accuracy: 87.40%</pre><p>Gördüğünüz gibi modelin doğruluğu yüzde 90&#39;lara yaklaştı.</p><p>Bu bölümde model ağırlıklarının nasıl kaydedileceğini ve bu ağırlıkların nasıl yükleneceğini gördük. Şimdi devam edelim ve tüm modeli nasıl kaydedeceğimize bakalım.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F_M_LgQYyKxQ%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D_M_LgQYyKxQ&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F_M_LgQYyKxQ%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/a421a02dad8811dce08e8d38bf7dc069/href">https://medium.com/media/a421a02dad8811dce08e8d38bf7dc069/href</a></iframe><h3>Tüm Modeli Kaydetme</h3><p>Modelinizi canlıya almak için kaydetmeniz gerekir. Tek bir dosyada modelin mimarisini, ağırlıklarını ve eğitim konfigürasyonunu kaydetmek için save metodunu kullanabiliriz.</p><p>Modelinizi, SaveModel ve HDF5 şeklinde iki farklı formatta kaydedebilirsiniz. Unutmayın, Keras&#39;daSavedModel formatı ön tanımlı olarak kullanılır.</p><p>Hadi son modelimizi kaydedelim. Bunun için bir dizin oluşturalım.</p><pre>mkdir saved_model</pre><p>Şimdi bu dosyanın içine modelimizi kaydedelim.</p><pre>model.save(&#39;saved_model/my_model&#39;)</pre><p>Güzel, modelimizi kaydettik. Hadi bu dizin içindeki dosyalara bakalım.</p><pre>ls saved_model/my_model<br><br># Output:<br>assets fingerprint.pb keras_metadata.pb  saved_model.pb  variables</pre><p>Modeli canlıya almak için modelin kaynak kodlarına gerek yok. Deploy için SavedModel yeterlidir. Hadi bu dosyalara yakından bakalım.</p><p>saved_model.pb dosyası, modelin mimarisini ve hesaplama grafiklerini içerir.</p><p>keras_metadata.pb dosyasında, Keras tarafından gerekli ekstra bilgiler vardır.</p><p>variables alt dizini, ağırlık ve bias gibi parametre değerlerini içerir.</p><p>assets alt dizini, özniteliklerin ve sınıfların isimleri gibi ekstra dosyaları içerir.</p><p>Harika, modeli nasıl kaydedeceğimizi gördük. Şimdi model yükleme nasıl yapılır bakalım.</p><h3>Model Yükleme</h3><p>Kaydettiğiniz modeli load_model metodu ile yükleyebilirsiniz. Bunu yapmak için öncelikle model mimarisini oluşturalım ve daha sonra modeli yükleyelim.</p><pre>new_model = create_model()<br>new_model = tf.keras.models.load_model(&#39;saved_model/my_model&#39;)</pre><p>Tamam, modeli yükledik. Hadi bu modelin mimarisine bakalım.</p><pre>new_model.summary()</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/723/1*hK5sI3RPoFMBw6XWSJ8H4A.png" /></figure><p>Bu modelin, orijinal modeldeki aynı argümanlar ile compile edildiğini unutmayın. Hadi bu modelin test verileri üzerindeki doğruluğuna bakalım.</p><pre>loss, acc = new_model.evaluate(test_images, test_labels, verbose=2)<br>print(f&#39;Restored model, accuracy: {100 * acc:5.2f}%&#39;)<br><br># Output:<br>Restored model, accuracy: 87.40%</pre><p>Gördüğünüz gibi yüklediğimiz modelin test verileri üzerindeki doğruluk skoru, yüzde 87.</p><p>Modeli, h5 formatında da kaydedebilirsiniz. Fakat çoğu TensorFlow deployment aracı, SavedModel formatını ister.</p><h3>Son Sözler</h3><p>Bu blog yazısında, derin öğrenme modelleri nasıl kaydedilir ve nasıl yüklenir konularını işledik. İlk olarak ModelCheckpoint callback ile model ağırlıklarının kaydetmeyi gördük. Daha sonra modeli deploy etmek için tüm modeli kaydetmeyi ve yüklemeyi inceledik.</p><p>Bu yazının daha ayrıntılı videosunu, <a href="https://www.youtube.com/playlist?list=UUMOzH73XJRgK2EQ7COnG8DkyA">YouTube kanalımızdaki katılda</a> veya <a href="https://www.udemy.com/course/tensorflow-ile-derin-ogrenme/?referralCode=E4AF386D5F93F94FEFE6">Udemy kursumuzda</a> bulabilirsiniz.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FPLauGwBxlAs%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DPLauGwBxlAs&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FPLauGwBxlAs%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/1b91ddf8be24786c984fc837a32b5c13/href">https://medium.com/media/1b91ddf8be24786c984fc837a32b5c13/href</a></iframe><p>Yazıyı okuduğunuz için teşekkür ederim. Herhangi bir sorunuz varsa yorumlara yazabilirsiniz. Bu derste kullandığım notebookun linkine <a href="https://github.com/TirendazAcademy/Deep-Learning-with-TensorFlow/blob/main/Save_and_load_models.ipynb">buradan</a> ulaşabilirsiniz.</p><p>Hadi bağlanalım: <a href="https://youtube.com/c/tirendazakademi">YouTube</a> | <a href="https://www.udemy.com/user/tirendaz-akademi-2/">Udemy</a> | <a href="https://twitter.com/TirendazAkademi">Twitter</a> | <a href="https://www.instagram.com/akademitirendaz">Instagram</a> | <a href="https://www.linkedin.com/in/tirendaz-academy">LinkedIn</a>.</p><p>Aşağıdaki yazılar da dikkatinizi çekebilir:</p><ul><li><a href="https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-yol-haritas%C4%B1-9fb9f90f5f17">Derin Öğrenme Yol Haritası</a></li><li><a href="https://tirendazakademi.medium.com/makine-%C3%B6%C4%9Frenmesi-yol-haritas%C4%B1-2023-4418c290fc00">Makine Öğrenmesi Yol Haritası 2023</a></li></ul><p>Yazıyı beğendiyseniz alttaki alkış butonuna bir kaç defa basmayı unutmayın.</p><p>Gelecek yazılarda görüşmek üzere. Şimdilik hoşça kalın.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2cdffded5bb3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[ChatGPT Günlük Hayatta Nasıl Kullanılır?]]></title>
            <link>https://tirendazakademi.medium.com/chatgpt-nas%C4%B1l-kullan%C4%B1l%C4%B1r-68ed2971ff?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/68ed2971ff</guid>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[teknoloji]]></category>
            <category><![CDATA[chatgpt]]></category>
            <category><![CDATA[chatgpt4]]></category>
            <category><![CDATA[gpt]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Sun, 02 Apr 2023 12:43:14 GMT</pubDate>
            <atom:updated>2023-04-11T14:30:25.552Z</atom:updated>
            <content:encoded><![CDATA[<h4>8 farklı senaryo ile ChatGPT nasıl kullanılır öğren.</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nqPDtNPpP8g0xFoyKfll_g.jpeg" /><figcaption><a href="http://www.freepik.com/">Freepik</a></figcaption></figure><p>2022 yapay zekanın yılı oldu ve bu sadece başlangıç! ChatGPT ve Midjourney gibi araçlarla herkes yapay zekanın gücünü gördü ve gerçekten inanılmaz bir şey olduğunu anladı. Yapay zeka artık hayatımızın merkezinde.</p><p>En son yapılan araştırmaya göre, bu canavarın 300 milyon işin yerine geçebileceği söyleniyor. Trendler 6–7 senede bir değişiyor ve şimdi yeni trend yapay zeka! Bu trendi takip etmek için yapay zeka canavarını öğrenmemiz gerekiyor. Evet, bazı meslekler yapay zeka sayesinde ölecek ama aynı zamanda çok daha fazla yeni iş fırsatı da doğacak. Örneğin, prompt mühendisliği şimdiden trend. Prompt mühendisleri, doğru girdileri kullanarak yapay zekanın en iyi şekilde çalışmasını sağlıyor.</p><p>Birçok insan yapay zekanın gücünü ChatGPT ile öğrendi ama hala bu canavarla ne yapılabileceğini bilmiyor. Bu blog yazımda ChatGPT ’nin ne kadar heyecan verici olduğunu size göstereceğim!</p><p>ChatGPT ile yapacaklarınızın sınırı yok ama sadece 8 farklı senaryo üzerinden bu canavarla neler yapabileceğinizi anlatacağım. Hazır olun, çünkü yapay zeka treni hızla ilerliyor ve bu canavarla tanışmak için en heyecanlı zaman! Öncelikle ChatGPT nedir kısaca bakalım.</p><h3>ChatGPT nedir?</h3><p>ChatGPT aslında bir diyalog robotu. Teknik bir ifade ile bir yapay zeka dil modeli. ChatGPT ile sorularınıza cevap bulabilir, öneriler alabilir ve hatta sohbet edebilirsiniz. Belki ilerde en iyi arkadaşınız ChatGPT olacak.</p><p>Bu model ilk olarak GPT-3.5 modeli baz alınarak geliştirildi ve özellikle sohbet etmek için eğitildi. GPT-4&#39;ün çıkması ile çıkması ChatGPT, bu modeli kullanmaya başladı. Bu diyalog robotu eskiden sadece metin girdisi kabul ediyorken artık görsel girdileri de kabul etmeye başladı. Yani bu arkadaşa, istediğiniz bir web sitesini çizip verdiğinizde, o da size bu sitenin kodlarını veriyor.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FydY5LnlJCQ8%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DydY5LnlJCQ8&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FydY5LnlJCQ8%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/38d8054be175159dd7f05499de5276b5/href">https://medium.com/media/38d8054be175159dd7f05499de5276b5/href</a></iframe><p>Muhteşem değil mi?</p><p>ChatGPT ile yapacaklarınız hayallerinizle sınırlı. Ama bu canavarı nasıl kullanacağınızı bilmeniz gerekiyor. İşte bu videoda farklı senaryolar üzerinden ChatGPT’yi günlük hayatta nasıl kullanabileceğinizi göstereceğim.</p><p>ChatGPT’yi ücretsiz olarak kullanabilirsiniz. Ama aylık 20 dolar verirseniz bu diyalog robotunu GPT-4 tabanlı olarak daha hızlı kullanabilirsiniz. Tamam kısaca ChatGPT’yi nedir inceledik. Şimdi kullanım senaryolarına bakalım.</p><h3>1. Özetleme</h3><p>Her gün, finans, motivasyon, programlama gibi alanlarda yeni kitaplar çıkıyor değil mi? Gerçekçi olalım, bu kitapların çoğunu okumak için vakit bulamıyoruz. İşte tam bu nokta da ChatGPT imdadımıza yetişiyor. Okumak istediğimiz ama bir türlü okuyamadığımız kitapların özetini ChatGPT’den isteyebiliriz.</p><p>Örneğin George Orwell’ın hayvan çiftliği kitabının özeti görmek isteyelim. Hadi ChatGPT’ye soralım.</p><pre>George Orwell&#39;ın hayvan çiftliği kitabını özetler misin?</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1002/1*EDOLTPjOZhT3GKGrCeBQ1A.png" /></figure><p>Tabi ki bütün kitabı okumak daha iyi ama vaktiniz yoksa bu şekilde kitap hakkında fikir edinebilir. Ve bu özete bakarak, kitap için zaman ayırıp ayırmayacağına karar verebilirsiniz.</p><p>Harika değil mi?</p><p>Hızlı ve güvenilir kitap özetleri için ChatGPT ’ye başvurabilirsiniz. Tamam ChatGPT’nin bir kitabı nasıl özetlediğini gördük. Hadi şimdi öneri için bu arkadaşı nasıl kullanabileceğimize bakalım.</p><h3>2. En Beğenilen Ürünleri Bulma</h3><p>Her zaman en kaliteli ürünleri bulmak ve en iyi kitapları okumak isteriz. En iyileri bulmak için çoğu zaman ürün hakkında yazılmış yorumları okuruz. Ama bu süreç çok yorucu ve çok zaman alıcıdır değil mi? Artık rahat olun, ChatGPT en iyi ürünleri bulmada sizi yardımcı olur.</p><p>Örneğin veri bilimi alanında uzmanlaşmak istiyorsunuz. Bunun için en iyi kitapları bulmak istiyorsunuz. Bunu ChatGPT’ye sormanız yeterli.</p><pre>Veri bilimi hakkında en iyi 5 kitabı öner misin?</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/888/1*DlvgL97ZlUxDUefE3H-NbA.png" /></figure><p>Bu şekilde ChatGPT’den tatil, film, bilgisayar, telefon tavsiyeleri alabiliriz.</p><p>Tamam, ChatGPT’den istediğimiz ürün hakkında nasıl öneriler alabileceğimizi gördük. Hadi devam edelim ve ChatGPT’yi pazarlama konusunda nasıl kullanabileceğimize bakalım.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F2uEpbliQDAE%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D2uEpbliQDAE&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F2uEpbliQDAE%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/68ae6bae942f96b8aaf71763c6abaa5f/href">https://medium.com/media/68ae6bae942f96b8aaf71763c6abaa5f/href</a></iframe><h3>3. Sosyal Medya Reklamları Oluşturma</h3><p>Hepimizin farklı alanlarda uzmanlıkları var. Örneğin ben veri bilimi, yapay zeka ve programlama alanları ile ilgilenmeyi seviyorum ve bu alanlarda uzmanlaşmak istiyorum. Ama her alanda uzman olamayız değil mi?</p><p>Örneğin bir web geliştiricisi düşünelim. Bu kişi tamam web geliştirme ve tasarımda uzman olabilir ama bir yandan iş bulabilmesi için kendi reklamını yapması gerekiyor. Ya da reklam için ajanslara ödeme yapması gerekiyor.</p><p>Paradan tasarruf etmek için ChatGPT sizin can kurtarıcınız olabilir. Bu arkadaş, para kazanmada kesinlikle kraldır. Örneğin bir Facebook reklamı oluşturmak istiyorsunuz. Hadi bunu ChatGPT’ye soralım.</p><pre>En iyi web geliştirme ajansı için bir Facebook reklamı oluştur musun?</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/991/1*Sq_gTguNE1ft1f-UfRuqvw.png" /></figure><p>Artık reklam metni için ajans aramanıza gerek yok. ChatGPT, sizin işlerinizi saniyeler içinde yapıyor.</p><p>Size güzel bir haberim var. ChatGPT yalnızca reklamla sınırlı değil. E-posta kampanyalarından sosyal medya gönderilerine kadar her türlü pazarlama içeriğinizi bu arkadaşa yaptırabilirsiniz. Böylece hem zamandan hem de paradan tasarruf edebilirsiniz.</p><p>Tamam, ChtGPT’yi pazarlama alanında nasıl kullanabileceğimizi gördük. Hadi şimdi devam edelim ve bu arkadaşı içerik üretmede nasıl kullanacağımıza bakalım.</p><h3>4 . İçerik Üretme</h3><p>İçerik üretmek günümüzün en önemli yeteneklerinden biri haline geldi. İçerik üreterek hem kendinizi geliştirebilir hem de geniş bir network oluşturabilirsiniz. İçerik üretirken dikkat edilmesi gerekenlerden şeylerden biri de ilgi çekici başlıklar kullanmaktır.</p><p>Ben kendi tecrübelerimden biliyorum. Bir YouTube videosu ya da bir blog yazısı yazdığımda içerik ne kadar kaliteli olursa olsun başlık dikkat çekici değil ise maalesef tıklanmıyor. Akılda kalıcı başlıklar bulmak için ChatGPT’yi kullanabiliriz. Bu arkadaşı kullanarak creative isimler, başlıklar oluşturabilirsiniz.</p><p>Örneğin yapay zeka destekli bir eğitim platformu startup fikriniz var. Bu projede, öğrencilerin öğrenme hızını artırmak için yapay zeka teknolojilerini kullanmak istiyorsunuz. Bu startup fikri için ilgi çekici bir başlık bulmak istiyorsunuz. Bunun için ChatGPT’yi kullanabilirsiniz. Hadi soralım.</p><pre>Yapay zeka destekli bir eğitim platformu oluşturmak istiyorum. <br>Bu startup fikri için ilgi çekici ve akılda kalıcı 10 isim önerir misin?</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1005/1*4WHVOgLTiCiMNOQKlGd9Jg.png" /></figure><p>İsterseniz blog yazınız için isterseniz YouTube kanalınız için bu şekilde dikkat çekici başlıklar üretebilirsiniz.</p><p>Tamam, ChatGPT’yi fikir üretmede nasıl kullanacağımızı gördük. Şimdi gerçek hayat hikayelerini öğrenmede bu arkadaşı nasıl kullanacağımıza bakalım.</p><h3>5. Kişisel Gelişim</h3><p>Sizi bilmem ama ilham almak için gerçek hayat hikayelerini okumayı seviyorum. Yaşanmış olayları okumak ve onlardan ders çıkarmak hoşuma gidiyor. Ama gerçekçi olalım, uzun hayat hikayeleri okumak bazen göz korkutucu olabilir.</p><p>İşte ChatGPT’nin oyuna girdiği yer burası. Başarılı insanların gerçek hikayelerinin özetini görmek istediğinizde bu arkadaş oldukça yetenekli. Örneğin Steve Jobs’ın hayatını ilham almak için öğrenmek istiyorsunuz. Bunun için ChatGPT’den yardım alabilirsiniz. Hadi soralı:</p><pre>Apple&#39;ın kurucusu Steve Jobs&#39;ın hikayesini beni motive etmesi için anlatır mısın?</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/888/1*wuS1r3qBZ_mbHO9W-MI1_w.png" /></figure><p>Steve Jobs’ın hayat hikayesi bir çok insan için ilham kaynağıdır. Nasıl olmasın ki 19 yaşında şirket kurup Steve Wozniak ile ilk Apple bilgisayarı üretiyor. Daha sonra kendi kurduğu şirketten kovuluyor. Bu noktada, birçok kişi kariyerinin bittiğine inanıyor. Ancak Jobs, NeXT adlı başka bir bilgisayar şirketi kuruyor ve Pixar adlı bir animasyon stüdyosunu satın alıyor. Pixar’ın Disney tarafından satın alınmasıyla, büyük başarı elde ediyor.</p><p>Bu başarılarının ardından kendi kurup kovulduğu Apple’a CEO olarak geri geliyor ve iPod, iPhone ve iPad gibi yenilikçi ürünlerin geliştirilmesini sağlıyor.</p><p>Harika değil mi?</p><p>Bu şekilde Bill Gates gibi başarılı insanların hayat hikayelerini öğrenebilir ve onların hikayerinden ilham alabilirsiniz.</p><p>Tamam bu bölümde kişisel gelişim için ChatGPT’yi nasıl kullanabileceğimize baktık. Hadi şimdi ChatGPT’nin karmaşık konuları nasıl basitleştirdiğine bakalım.</p><h3>6. Kompleks Konuları Basitleştirme</h3><p>Bir çok kez kompleks, anlaması zor konularla karşılaşmışızdır. Bu konuları anlamak için saç baş yolduğumuz olmuştur. Peki karmaşık kavramları basitleştirerek anlatan biri olsa ne harika olur değil mi? Evet size harika bir haberim var. ChatGPT, sizin için her şeyi basitleştirir.</p><p>İster bir programcı, ister pazarlamacı veya sadece meraklı bir öğrenci olun, ChatGPT, en kompleks konuları sizin için anlaşılması kolay hale getirir. Örneğin ChatGPT ’den kuantum computing’i basitçe bize açıklamasını isteyelim.</p><pre>Kuantum computing&#39;i ben 5 yaşımdaymışım gibi açıklayabilir misin?</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/889/1*Yrr4wQpf9jD4p9XTWLOsAQ.png" /></figure><p>İster en son karmaşık teknolojik konuları öğrenmek isteyin, isterseniz kompleks akademik terimleri kavramak isteyin ChatGPT sizin hizmetinizde. Bu arkadaştan zor konuların basitleştirmesini isteyin, arkanıza yaslanın ve sadece sihirli kelimeleri okuyun.</p><p>Tamam, böylece ChatGPT’nin nasıl karmaşık konuları anlaşılabilir hale getirdiğini gördük. Hadi devam edelim ve ChatGPT’yi dil becerilerini geliştirmede nasıl kullanabileceğimize bakalım.</p><h3>7 . Dil Becerilerini Geliştirme</h3><p>Ülkemizde ilk okuldan itibaren İngilizce eğitimi verilir ama öğrenciler bir türlü istenen seviyeye getirilemez. İnsan büyüdükçe, İngilizce becerilerini geliştirme konusunda biraz daha çekingen oluyor. Ana dili İngilizce olan ülkelerde yaşamıyorsanız özellikle gramer kurallarını ve günlük hayatta kullanılan tabirleri öğrenmek zor olur.</p><p>Fakat korkmayın, ChatGPT saniyeler içinde dil becerilerinizi geliştirmenize size yardımcı olur. Örneğin writing konusunda kendinizi geliştirmek istiyorsunuz. Önce söylemek istediklerinizi kendi tarzınızda yazın. Daha sonra hataları düzeltme ve yazıyı daha iyi hale getirme işini ChatGPT’ye bırakın.</p><p>Örneğin diyelim ki bir şirketten ödeme almak istiyorsunuz. Basitçe bir cümle yazdınız. Bu cümleyi daha resmi bir dile çevirmek istiyorsunuz. Bu işi ChatGPT’ye yaptırabilirsiniz.</p><pre>Bu cümleyi daha resmi olarak tekrar yaz: <br>&quot;I want to receive payment. Can you send the invoice&quot;</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/991/1*pZRO49oZVPMs-p17rTRvFQ.png" /></figure><p>Gördüğünüz gibi saniyeler için de bu cümleyi daha resmi olarak yazdı. Gramer düzeltme, yazıyı daha akıcı hale getirme veya çeviri gibi işler için ChatGPT’yi kullanabilirsiniz.</p><p>Tamam bu arkadaşı dil konusunda nasıl kullanabileceğinizi gördük. Hadi son olarak işe girmek için ChatGPT’yi nasıl kullanabileceğimize bakalım.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FZ-Y9aBtI21k%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DZ-Y9aBtI21k&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FZ-Y9aBtI21k%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/828a55e6b11b5361d7b8d6717dd9d4e9/href">https://medium.com/media/828a55e6b11b5361d7b8d6717dd9d4e9/href</a></iframe><h3>8 . Mülakatlara Hazırlanma</h3><p>İşe girmek için mülakatta başarılı olmak büyük bir challenge’dır, değil mi? Mükatlarda bilginizi ve becerilerinizi göstermek istersiniz ama bir yandan da insan kaynakları mümkün olan en düşük maaşı vermeye çalışır.</p><p>Mülakatlarda başarılı olmak için ChatGPT’den en iyi ipuçlarını ve püf noktalarını öğrenebilirsiniz. Hadi bir örnekle bunu gösterelim.</p><pre>Bir mülakatçı ol ve bir veri bilimci olarak bana en zor 10 soruyu sor mısın?</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/976/1*6BqGLFeu-gFSnnsUczzxyg.png" /></figure><p>ChatGPT’nin cevaplarına çalışarak bir uzman gibi mülakatta sorulan sorulara cevap verebilirsiniz.</p><p>Ancak durun hepsi bu kadar değil. ChatGPT, daha iyi bir maaş için pazarlık yapmanıza da yardımcı olur.</p><pre>Mülakatçı, maaş konusunda bana soru sorduğunda nasıl cevap vereyim?</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/994/1*C_7vOeNXW4OQ53bNWZQ71g.png" /></figure><p>Mülakatlar aslında bir taktik savaşıdır. Kendinizi güzel ifade ederseniz istediğinizi koparabilirsiniz. Bu ip uçlarından yararlanarak, iş verenden potansiyelinize uygun bir maaş alabilirsiniz.</p><p>Tamam, böylece ChatGPT’yi iş görüşmelerinde nasıl kullanabileceğimizi gördük.</p><h3>Son Sözler</h3><p>ChatGPT’yi kullanarak birçok işinizi daha kolay ve daha kısa sürede yapabilirsiniz. Unutmayın yapay zeka, bizim rakibimiz değil yardımcımız yani şimdilik.</p><p>Bu blog yazısında, ChatGPT’nin 8 farklı alanda kullanım senaryosunu gördük. Bu arkadaşı kod yazma, cv oluşturma, senaryo yazma, hatta tasarım için bile kullanabilirsiniz.</p><p>Hadi bağlanalım: <a href="https://youtube.com/c/tirendazakademi">YouTube</a> | <a href="https://www.udemy.com/user/tirendaz-akademi-2/">Udemy</a> | <a href="https://twitter.com/TirendazAkademi">Twitter</a> | <a href="https://www.instagram.com/akademitirendaz">Instagram</a> | <a href="https://www.linkedin.com/in/tirendaz-academy">LinkedIn</a>.</p><ul><li><a href="https://tirendazakademi.medium.com/yaz%C4%B1l%C4%B1m-%C3%B6%C4%9Frenmek-i%C3%A7in-%C3%BCcretsiz-10-web-sitesi-e077b940c6db">Yazılım Öğrenmek için Ücretsiz 10 Web Sitesi</a></li><li><a href="https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-yol-haritas%C4%B1-9fb9f90f5f17">Derin Öğrenme Yol Haritası</a></li></ul><h3>Kaynaklar</h3><ul><li><a href="https://medium.com/swlh/i-used-chatgpt-every-day-for-3-months-heres-what-i-ve-learned-b4e8b1d910b4">I used ChatGPT every day for 3 months here’s what I’ve learned</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=68ed2971ff" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Keras Subclassing API ile Derin Öğrenme Modelleri Kurma]]></title>
            <link>https://tirendazakademi.medium.com/keras-subclassing-api-ile-derin-%C3%B6%C4%9Frenme-modelleri-kurma-358255e4c2e9?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/358255e4c2e9</guid>
            <category><![CDATA[derin-öğrenme]]></category>
            <category><![CDATA[veri-bilimi]]></category>
            <category><![CDATA[tensorflow]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Fri, 24 Mar 2023 15:16:17 GMT</pubDate>
            <atom:updated>2023-03-24T20:16:33.313Z</atom:updated>
            <content:encoded><![CDATA[<h4>TensorFlow &amp; Keras ile kompleks derin öğrenme modelleri nasıl kurulur?</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*X75bbu1iU4OV5hOiXzdQbw.jpeg" /><figcaption><a href="https://www.freepik.com/">Freepik</a></figcaption></figure><p><a href="https://medium.com/@tirendazakademi/keras-subclassing-api-ile-derin-%C3%B6%C4%9Frenme-katmanlar%C4%B1-9aaedfff2a0c">Geçen yazımda </a>Subclassing API yaklaşımı ile esnek bir katman nasıl oluşturulur anlatmıştım. Bu makalede bir adım daha ileri atacağız ve bu yöntem ile nasıl model kuracağımızı göreceğiz.</p><p>Sequential API ve Functional API ile model kurmak kolaydır ama bu yöntemler ile kompleks modeller oluşturmak zordur. İleri düzey derin öğrenme modelleri kurmak için Subclassing API kullanmak daha iyi bir fikir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vHONxmPtdZsE-wkGcWaUeA.png" /><figcaption><a href="https://towardsdatascience.com/3-ways-to-build-neural-networks-in-tensorflow-with-the-keras-api-80e92d3b5b7e">Keras ile Bir Sinir Ağı İnşa Etmek için 3 Yöntem</a></figcaption></figure><p>Bunu göstermek için bir regresyon problemini ele alalım. Bunun için geçen derslerde kullandığımız California Housing veri setini kullanalım. Bu veri seti California’daki ev fiyatlarını ve bu evlerin özelliklerini gösteriyor.</p><blockquote>Yapay zekaya ilginiz varsa <a href="https://www.udemy.com/course/tensorflow-ile-derin-ogrenme/?referralCode=E4AF386D5F93F94FEFE6">TensorFlow ve Keras ile derin öğrenme Udemy kursumuzu</a> inceleyebilirsiniz.</blockquote><p>Hadi veri setini yüklemek ile başlayalım.</p><h3>Veri Setini Yükleme</h3><p>Öncelikle fetch_california_housing fonksiyonunu ile veri setimizi import edelim.</p><pre>from sklearn.datasets import fetch_california_housing<br>housing = fetch_california_housing()</pre><p>Tamam veri setini housing değişkenine atadık. Hadi veri ön işleme aşamasına geçelim.</p><h3>Veri Ön İşleme</h3><p>Veri ön işleme veri analizinin önemli aşamalarından biridir. Unutmayın ne kadar iyi veriniz varsa o kadar iyi model kurabilirsiniz. Öncelikle veri setimizi eğitim, validasyon ve test şeklinde parçalayalım. Eğitim verileri ile model kurulur, validasyon verileri ile hiperparametre ayarı yapılır ve test verileri ile model test edilir. Hadi veri setini parçalamak için Scikit-Learn’ deki train_test_split fonksiyonunu kullanalım.</p><pre>from sklearn.model_selection import train_test_split<br><br>X_train_full, X_test, y_train_full, y_test = train_test_split(<br>      housing.data, housing.target, random_state=42)<br><br>X_train, X_valid, y_train, y_valid = train_test_split(<br>      X_train_full, y_train_full, random_state=42)</pre><p>Tamam, böylece veri setlerimizi oluşturduk. Artık model kurma aşamasına geçebiliriz.</p><h3>Model Kurma</h3><p>Bu bölümde Subclassing API ile nasıl model kurulacağını göstereceğim. Öncelikle TensorFlow ve Keras’ı import edelim.</p><pre>import tensorflow as tf<br>from tensorflow import keras</pre><p>Subclassing yönteminde, constructor ’da katmanları tanımlanır ve call metodunda sinir ağı inşa edilir. Şimdi bir mimari ele alalım:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/499/1*Ur0Z1_uwRCtUmiPDheHkdg.png" /><figcaption><a href="https://www.oreilly.com/library/view/hands-on-machine-learning/9781098125967/">Oluşturacağımız Model Mimarisi</a></figcaption></figure><p>İki girdisi ve bir çıktısı olan bir model kurmak isteyelim. Bunun için bir sınıf oluşturalım. Geçen derste anlattığım gibi esnek bir katman oluştururken keras.layer.Layer sınıfından miras alıyorduk. Model kurarken keras.Model sınıfından miras alacağız. Miras almak demek kalıtım almak demek. Bu yöntem, bir üst sınıfın tüm değişken ve metotlarını başka bir sınıfın içinde kullanmamızı sağlar.</p><pre>class WideAndDeepModel(tf.keras.Model):<br>    def __init__(self, units=30, activation=&quot;relu&quot;, **kwargs):<br>        super().__init__(**kwargs) <br>        self.norm_layer_wide = tf.keras.layers.Normalization()<br>        self.norm_layer_deep = tf.keras.layers.Normalization()<br>        self.hidden1 = tf.keras.layers.Dense(units, activation=activation)<br>        self.hidden2 = tf.keras.layers.Dense(units, activation=activation)<br>        self.main_output = tf.keras.layers.Dense(1)    <br>    def call(self, inputs):<br>        input_wide, input_deep = inputs<br>        norm_wide = self.norm_layer_wide(input_wide)<br>        norm_deep = self.norm_layer_deep(input_deep)<br>        hidden1 = self.hidden1(norm_deep)<br>        hidden2 = self.hidden2(hidden1)<br>        concat = tf.keras.layers.concatenate([norm_wide, hidden2])<br>        output = self.main_output(concat)<br>        return output</pre><p>Harika, böylece modelimizin mimarisini oluşturduk. Şimdi modelden bir örnek alalım. Öncelikle sizin de benim ürettiğim sonuçları bulmanız için set_seed metodunu kullanalım ve ardından örneğimizi oluşturalım.</p><pre>tf.random.set_seed(42)<br>model = WideAndDeepModel(30, activation=&quot;relu&quot;, name=&quot;my_model&quot;)</pre><p>Tamam böylece modelden bir örnek aldık. Şimdi modeli compile edelim. Bu aşamada modelde kullanacağımız loss, optimizer ve metriği belirleyeceğiz. Optimizer olarak genelde kullanılan Adam’ı kullanalım.</p><pre>optimizer = tf.keras.optimizers.Adam(learning_rate=1e-3)<br>model.compile(loss=&quot;mse&quot;, optimizer=optimizer, <br>              metrics=[&quot;RootMeanSquaredError&quot;])</pre><p>Tamam böylece modelimizi compile ettik. Modelimizde iki girdi var değil mi? Şimdi bu girdileri oluşturalım. Önce eğitim için girdileri oluşturalım. Toplamda 7 girdi değişkenimiz var. Bunlardan ilk 5 öznitelik wide girdi son 5 öznitelikte deep girdisi olsun.</p><pre>X_train_wide, X_train_deep = X_train[:, :5], X_train[:, 2:]<br>X_valid_wide, X_valid_deep = X_valid[:, :5], X_valid[:, 2:]<br>X_test_wide, X_test_deep = X_test[:, :5], X_test[:, 2:]</pre><p>Tamam model için girdi verilerimizi oluşturduk. Şimdi model eğitim aşamasına geçelim.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fu-ZqOSrM3Ko&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Du-ZqOSrM3Ko&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2Fu-ZqOSrM3Ko%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e588bfefc7b1c73ff4ddcd03ddce6f7c/href">https://medium.com/media/e588bfefc7b1c73ff4ddcd03ddce6f7c/href</a></iframe><h3>Model Eğitim</h3><p>Modeli eğitmeden önce modelin normalleştirme katmanı için adapt metodunu kullanmamız gerekiyor. Bu metot ne yapıyordu? Eğitim verilerinden ortalama ve varyans gibi istatistikleri öğreniyordu. Daha sonra bu istatistikler test verileri için kullanılıyordu. Öncelikle girdi verilerini adapt metodu ile veri ön işleme yapalım. Her iki girdinin de ayrı ayrı istatistikleri olacağı için bu metodu ikisi içinde kullanalım.</p><pre>model.norm_layer_wide.adapt(X_train_wide)<br>model.norm_layer_deep.adapt(X_train_deep)</pre><p>Tamam, artık fit metodunu çağırıp eğitime başlayabiliriz.</p><pre>history = model.fit((X_train_wide, X_train_deep),<br>                    y_train,<br>                    validation_data=((X_valid_wide, X_valid_deep), y_valid),<br>                    epochs=10)</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IBWGUaH5QImptFqw9olOuA.png" /></figure><p>Modelin eğitim ve validasyon verileri için loss ve metrik değerlerini burada görebilirsiniz. Tamam böylece modelimizi eğittik. Hiperparametreleri ayarlayarak modelin performansını arttırabiliriz ama bu yazı, Keras’ı öğrenmeye yönelik olduğu için şimdilik bu değerler ile çok uğraşmayalım. Şimdi modeli test verisini kullanarak değerlendirelim.</p><pre>eval_results = model.evaluate((X_test_wide, X_test_deep), (y_test, y_test))<br>eval_results<br><br># Output:<br>loss: 0.3589 - root_mean_squared_error: 0.5991</pre><p>Modelimizin test verisi üzerindeki loss ve metrik değerlerini burada görebilirsiniz.</p><h3>Yeni Verileri Tahmin Etme</h3><p>Şimdi bir adım daha ileri atalım ve modelimizin yeni verileri nasıl tahmin ettiğine bakalım. Öncelikle test verisinden bir kaç örnek alalım.</p><pre>X_new_wide, X_new_deep = X_test_wide[:3], X_test_deep[:3]</pre><p>Tamam elimizde örnek veriler var. Şimdi modelimizi kullanarak bu verilerin etiketlerini tahmin edelim. Bunun için predict metodunu çağıracağız.</p><pre>y_pred= model.predict((X_new_wide, X_new_deep))<br>y_pred<br><br># Output:<br>1/1 [==============================] - 0s 113ms/step<br>array([[0.4832632],<br>       [1.6469457],<br>       [3.5325484]], dtype=float32)</pre><p>Modelin tahmin ettiği değer bunlar. Şimdi gerçek değerlere bakalım.</p><pre>y_test[:3]<br><br># Output:<br>array([0.477  , 0.458  , 5.00001])</pre><p>Gerçek etiketlerde bu değerler. Tahminleri dediğim gibi daha iyi hale getirebiliriz. Bu yazıda Subclassing API ile nasıl bir derin öğrenme model kuracağınızı anlattım.</p><h3>Son Sözler</h3><p>Sonuç olarak kompleks modeller kurmak için en iyi yol Subclassing yöntemi. Bu yöntemin Functional API ile arasındaki en büyük fark call metodunu kullanmak. Bu yöntem içinde for döngüsü ya da if ifadesi kullanabiliriz. Dolayısıyla araştırma yapmak, yeni deneyler tasarlamak için Subclassing yöntemi idealdir.</p><p>Bu yazıda anlattıklarımı daha ayrıntılı olarak görmek için aşağıdaki videoyu izleyebilirsiniz.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FZqIf8n3Mpg4%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DZqIf8n3Mpg4&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FZqIf8n3Mpg4%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e6a6542d21ab16e112a78444f611ae4f/href">https://medium.com/media/e6a6542d21ab16e112a78444f611ae4f/href</a></iframe><p>Bu derste kullandığım notebook’a <a href="https://github.com/TirendazAcademy/Deep-Learning-with-TensorFlow/blob/main/Model_Subclassing_with_Keras.ipynb">buradan</a> ulaşabilirsiniz. Aşağıdaki yazılarda dikkatinizi çekebilir.</p><ul><li><a href="https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-yol-haritas%C4%B1-9fb9f90f5f17">Derin Öğrenme Yol Haritası</a></li><li><a href="https://tirendazakademi.medium.com/yapay-zekada-yeni-devrim-gpt-4-1a9f86de15e9">Yapay Zekada Yeni Devrim: GPT-4</a></li></ul><p>Bir yazının daha sonuna geldik. Yazıyı okuduğunuz için teşekkür ederim. Yazı hoşunuza gittiyse aşağıdaki alkış simgesine bir kaç kez tıklamayı unutmayın. Gelecek makalelerde görüşmek üzere. Şimdilik hoşça kalın.</p><p>Hadi bağlanalım: <a href="https://youtube.com/c/tirendazakademi">YouTube</a> | <a href="https://www.udemy.com/user/tirendaz-akademi-2/">Udemy</a> | <a href="https://twitter.com/TirendazAkademi">Twitter</a> | <a href="https://www.instagram.com/akademitirendaz">Instagram</a> | <a href="https://www.linkedin.com/in/tirendaz-academy">LinkedIn</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=358255e4c2e9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Yapay Zekada Yeni Devrim: GPT-4]]></title>
            <link>https://tirendazakademi.medium.com/yapay-zekada-yeni-devrim-gpt-4-1a9f86de15e9?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/1a9f86de15e9</guid>
            <category><![CDATA[veri-bilimi]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[gpt-4]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[derin-öğrenme]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Mon, 20 Mar 2023 19:21:46 GMT</pubDate>
            <atom:updated>2023-04-02T12:44:19.829Z</atom:updated>
            <content:encoded><![CDATA[<h4>4 adımda GPT-4 hakkında bilmeniz gerekenler</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y3KMqG5dXGc7yx5YEYwEUw.png" /><figcaption>Yazar tarafından oluşturuldu</figcaption></figure><p>Nihayet merakla beklenen OpenAI’ın son canavarı GPT-4 çıktı. Bu model, OpenAI’ın derin öğrenme alanındaki en büyük dönüm noktalarından biri. GPT-4&#39;ün diğer modellerden en büyük farkı çoklu model olması. Yani ChatGPT’ye metin giriyoruz ya işte bu yeni modele artık görselde girebileceğiz. GPT-4, metin ve görsel promptları kabul ediyor.</p><p>Bunu daha iyi anlamak için hadi OpenAI’ın GPT-4 tanıtım videosunda gösterdiği örneğe bakalım.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*V8HIEitK1D7Sd-oewcnFzw.png" /><figcaption><a href="https://www.youtube.com/live/outcGtbnMuQ?feature=share">OpenAI GPT-4 Demo</a> (Yazar tarafından oluşturuldu)</figcaption></figure><p>Önce bir website şablonu kağıda çiziliyor. Daha sonra bu kağıdın fotoğrafı çekiliyor. Ardından GPT-4&#39;e bu görsel girdi olarak verilip, bu şablonu renkli bir web sitesine çevir dendiğinde, GPT-4 gerekli kodları veriyor. Gördüğünüz gibi model resmi algıladı ve çıktıyı verdi. Bu şekilde istediğiniz web sitesini kağıda çizip bir kaç saniye içinde oluşturabiliyorsunuz.</p><p>Harika değil mi?</p><p>ChatGPT gibi metinsel veriyi de GPT-4&#39;e verebiliyorsunuz. Diyelim ki bir oyun yapmak istiyorsunuz. Ama kod yazmayla uğraşmak istemiyorsunuz. İstediğiniz oyunu GPT-4 söylemeniz yeter.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*n_2pRwVG6f5rep0MnXajTw.gif" /><figcaption><a href="https://twitter.com/skirano/status/1635736107949195278">Pong Oyunu</a></figcaption></figure><p>Bammm! Model size oyunun kodlarını veriyor, bu kodları kullanarak oyununuzu yapabiliyorsunuz.</p><p>Hadi başka bir örneğe bakalım. JavaScript ve gerekli HTML ve CSS kodları kullanarak bana yılan oyunu yap diyorsunuz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*O-OQDXfrG5nA9yvTpASpkA.gif" /><figcaption><a href="https://twitter.com/ammaar/status/1635754631228952576">Snake Game using GPT-4</a></figcaption></figure><p>GPT-4 size gerekli kodları veriyor. Muhteşem değil mi? GPT-4 ile daha bir çok şey yapabilirsiniz. Bu yazının sonunda GPT-4 ile neler yapabileceğinizi daha iyi anlayacaksınız. Hadi bu makalede neler konuşacağımıza bakalım.</p><ul><li>Öncelikle GPT-4 aslında nedir inceleyeceğiz.</li><li>GPT-4&#39;ün gücünü anlamak için bir önceki versiyonu olan GPT-3.5 ile karşılaştıracağız.</li><li>GPT-4&#39;e nereden kullanabileceğimize bakacağız.</li><li>En son, bu modeli API olarak kullanmak isteyenler için GPT-4 kullanım fiyatlarını ele alacağız.</li></ul><p>Hadi GPT-4 nedir ile başlayalım.</p><h3>GPT-4 Aslında Nedir?</h3><p>GPT-4, 2017 yılında Google beyin takımı tarafından geliştirilen Transformers mimarisine dayanıyor.</p><p>Transformers, encoder ve decoder’dan oluşuyor. Bu mimari devrim niteliğindeydi ve özellikle dilden dile çeviri görevlerinde harika sonuçlar verdi. Son 5 yılda, Google çevirinin insan seviyesinde çeviriler yapması bu mimariden dolayı.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pnf8XFfm4wxYwXwDdIE59Q.png" /><figcaption><a href="https://heidloff.net/article/foundation-models-transformers-bert-and-gpt/">Transformers Mimarisi</a></figcaption></figure><p>Bu mimariye dayanan iki önemli model var. Bunlardan bir BERT diğeri de GPT. BERT daha çok metin sınıflandırma gibi görevler için kullanılırken, GPT, daha çok metin üretmek için kullanılır. İşte GPT-4, Transformers mimarisine dayanıyor.</p><p>Bu modeli eğitmek için internetteki veriler kullanıldı. Tabi bu büyük veriler ile çalışmak kolay değil. Model eğitimi için Azure ile ortaklaşa çalışarak iki yıl içinde süper bir bilgisayar tasarlandı. Bu sistemi denemek için geçen sene GPT-3.5 modeli eğitildi. Düşünün, bütün dünyayı hayran bırakan ChatGPT, GPT-3.5 üzerine inşa edildi. GPT-4&#39;ün gücünü buradan da anlayabilirsiniz.</p><p>Tamam, GPT-4&#39;ün arkasındaki mimariyi gördük ve gelişim sürecine kısaca baktık. Hadi Open AI kendi web sayfasında GPT-4&#39;ün neler yapabileceğini gösterdiği bir kaç örneğe bakalım.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SeM3wbrGZn9HMti7sFBgzg.png" /><figcaption><a href="https://openai.com/research/gpt-4">Visual inputs: VGA charger</a></figcaption></figure><p>Yukarıdaki resmi, modele verdiğinizde ve panel panel resmi tanımla dediğinizde, model görselde olanları algılıyor ve size açıklıyor. GPT-4 çıktı olarak, üç panelli bir Lightning Cable adaptör paketi gösterildiğini söylüyor. İşte panel panel resimlerde neler olduğunu açıklıyor. Model, resimlerdeki objeleri tek tek tanımladı.</p><p>Harika değil mi?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/949/1*a4nFXUqKEuzKb3PMp-U2VQ.png" /><figcaption><a href="https://openai.com/research/gpt-4">Visual inputs: extreme ironing</a></figcaption></figure><p>Örneğin, bu resimde, gördüğünüz gibi bir adam taksinin arkasında ütü yapıyor. Olağan dışı bir hadise değil mi? Bu resimdeki durumun absürt olduğunu biz anlıyoruz.</p><p>Bu resimde olağan dışı nedir diye GPT-4&#39;e sorduğumuzda, model, “Buradaki olağan dışılık, bir adamın hareket halindeki bir taksinin tavanına takılı bir ütü masasında ütü yapmasıdır” şeklinde size cevap veriyor.</p><p>Düşünün, model, bir insan gibi önce görseldeki nesneleri tanıyor. Zaten nesne tanımayı, yapay zeka modelleri yapabiliyordu. Ama burada model, nesnelerin olağan dışılıklarını algılıyor. Yani resmi neredeyse bir insan gibi fark ediyor ve çıkarımda bulunuyor.</p><p>5 sene önce resimleri yapay zeka tanıyıp çıkarımda bulunacak deselerdi kimse inanmazdı. Ama yapay zekanın kısa sürede geldiği noktaya bakın.</p><p>GPT-4&#39;ün bir önceki versiyonu GPT-3.5. ChatGPT bu model kullanılarak geliştirildi. Hadi GPT-4&#39;ü daha iyi anlamak için bu modeli GPT-3.5 ile karşılaştıralım.</p><h3>GPT-3.5 vs GPT-4</h3><p>GPT ailesi şimdiye kadar olmaz denilenleri başardı. Bu ailenin üyelerini şu videoda anlattım.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FYEtkNvWP_IQ&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DYEtkNvWP_IQ&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FYEtkNvWP_IQ%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/10fde44f857abdb2b3e720dbbbaccc3b/href">https://medium.com/media/10fde44f857abdb2b3e720dbbbaccc3b/href</a></iframe><p>GPT ailesinin en son iki üyesi GPT-3.5 ve GPT-4. Hadi bu modelleri daha iyi anlamak için birbiriyle karşılaştıralım.</p><p>İlk fark, GPT-3.5 sadece metin verileri ile çalışırken GPT-4 metin verileri haricinde, görsel ve video verileri ile de çalışabiliyor. Bu iki model arasındaki en büyük fark.</p><p>Parametre sayısı olarak GPT-3&#39;ün 175 milyar parametresi vardı. GPT-4&#39;ün 100 trilyon parametresi var. Büyüklüğü görebiliyor musunuz? Yani bu model, GPT-3&#39;den yaklaşık 500 kez daha büyük.</p><p>Şimdi, karşılıklı sohbet bakımından iki modeli karşılaştıralım. Basit sohbetlerde bu iki model arasında fark yok, fakatttt kompleks sohbetlerde, GPT-4&#39;ün farkı ortaya çıkıyor. Kompleks sohbetlerde, GPT-4, daha güvenilir, daha creative ve daha fazla nüanslara dikkat ediyor. Yani bu arkadaş, metinsel veriler ile de harika şekilde çalışıyor.</p><p>Hadi şimdi Open AI’ın özellikle vurguladığı sınav karşılaştırmasına geçelim. GPT-4, gerçek dünya problemlerini çözmekte insandan daha az kapasitede olmasına rağmen, akademik ve profesyonel sınavlarda insan seviyesinde başarı gösteriyor.</p><p>Ne güzel değil mi? Sınavdayken, GPT-4 yanınızda olursa, ister akademik ister başka bir profesyonel sınav olsun, kolayca yüksek puan alabilirsiniz.</p><p>OpenAI araştırmacıları, insanlar için yapılan sınavlar üzerinde GPT-3.5 ve GPT-4&#39;ü test ettiler. Bu sınavlar hem çoktan seçmeli hem de açık uçlu sorulardan oluşuyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/903/1*hYMnQP2VaVptL_3F8c5xVg.png" /><figcaption><a href="https://openai.com/research/gpt-4">Sınav sonuçları</a></figcaption></figure><p>Yukarıdaki grafikte sınavları ve bu sınavlardaki modellerin başarısını görebilirsiniz. Grafik, GPT-3.5&#39;un performansına göre düşükten yükseğe sıralanıyor. Yeşiller GPT-3.5 başarısını, maviler GPT-4&#39;ün başarısını gösteriyor.</p><p>Dikkat ederseniz hemen hemen bütün sınavlarda, GPT-4 daha iyi başarı gösteriyor. Çoğu sınavda GPT-4&#39;un başarısı, yüzde 80&#39;ni geçmiş hatta bazılarında 100&#39;e yakın. Bu sınavlar basit sınavlar değil akademik ve profesyonel sınavlar. Yani çoğu insanın çaktığı testler.</p><p>Şimdiye kadar, büyük veriler üzerinde eğitilen bir çok model geliştirildi. Bu modelleri karşılaştırmak için çeşitli benchmark testler kullanılır. Bu testlerde, örneğin, bir kelimeden sonra gelecek kelimeyi modelin nasıl tahmin ettiği ölçülür. Genelde bu testler ingilizcedir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/970/1*U6XLLOS57GKjofLjY2hqsA.png" /><figcaption><a href="https://openai.com/research/gpt-4">Benchmark testlerdeki modellerin başarısı</a></figcaption></figure><p>Bu grafikte çeşitli dillerdeki modellerin skorlarını görüyorsunuz. Bakın ilk seçenek rasgele bir şık seçildiğinde doğru cevabı bulma yüzdesi. 4 seçenekli bir sınavda doğru cevabı bulma olasılığı yüzde 25&#39;dir değil mi? Örneğin, Google tarafından geliştirilen PaLM modelinin test skoru ingilizce dili için yüzde 69, GPT-3.5 modelinin yüzde 70 ve GPT-4&#39;un yüzde 85.</p><p>İnanılmaz. GPT-4 karşılaştırmalı testlerde diğer modelere fark atmış. Hatta, bu testleri diğer dillere çevirip o dilde test yapıldığında yine GPT-4 harika sonuçlar vermiş. 26 dilin 24&#39;ünde GPT-4 rakiplerinden daha iyi skorlar elde etmiş.</p><p>Tamam, GPT-4 mükemmel bir model ama hiç mi bunun kötü tarafı yok diye sorabilirsiniz. Bu modelin yüksek kabiliyetlerine rağmen GPT ailesinin diğer üyeleri gibi bazı limitleri var. GPT ailesinin doğruluk oranlarını, OpenAI araştırmacıları karşılaştırmış.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/920/1*hDmIMCLjEbMzpKmm4Lp3yg.png" /><figcaption><a href="https://openai.com/research/gpt-4">GPT ailesinin doğruluk oranları</a></figcaption></figure><p>Yatay eksende alanlar ve düşey eksende modellerin doğruluk oranları yer alıyor. Bu oran ne kadar 1&#39;e yakınsa o kadar ideal insansı cevaplar elde edildiği anlamına geliyor.</p><p>Bakın, yeşil renk GPT-4&#39;ü gösteriyor. Yapılan testlerde, bu arkadaş, diğer modellere göre daha doğru çıktılar veriyor ama maalesef yüzde yüz doğru cevap veremediğini görüyoruz. Yani GPT-4&#39;ün kesin sonuçlar üretmesi için biraz daha yol alması gerekiyor.</p><p>Tamam, bu bölümde GPT modellerini karşılaştırdık ve GPT-4&#39;ün nasıl güçlü bir model olduğunu gördük. Ama bazı limitlerinin de olduğundan bahsettik. Hadi şimdi nereden GPT-4&#39;ü kullanabileceğinize bakalım.</p><h3>GPT-4 Nereden Kullanılır?</h3><p>Bildiğiniz gibi yakın zamanda OpenAI, ChatGPT’ye paralı abonelik getirdi. Aylık 20 dolara ChatGPT’ye abone olabiliyorsunuz. Eğer ücretli aboneliğiniz varsa direk olarak GPT-4&#39;ü kullanabilirsiniz. Yani anlayacağınız GPT-4&#39;ü hemen kullanmak tamamen duygusal nedenlere dayanıyor.</p><p>Eğer aboneliğiniz yoksa, bu canavarı kullanmanın başka bir yolu, bekleme listesine kayıt olmak ve sıranın size gelmesini beklemek. Bu sıra size ne zaman gelir bilemiyorum. Gelse bile muhtemelen sınırlı bir kullanım sunacaklar. Yani illa ki sizi paralı aboneliğe yönlendiriyorlar. Sıra geldiğinde OpenAI playground sayfasında GPT-4 modeli size açılacak.</p><p>GPT-4&#39;ü erişebilmenin diğer bir yolu Bing kullanmak. Bildiğiniz gibi Bing Microsoft tarafından geliştirilen bir arama motorudur. Bu motora daha önce ChatGPT’yi monte etmişlerdi. Microsoft’ta kurumsal başkan yardımcısı Yusuf Mehdi, Bing’in ön izlemesinin arkasındaki motorun, GPT-4 olarak değiştirdiklerini açıkladı. Dolayısıyla Bing Chat’i kullanarakta GPT-4&#39;e erişebilirsiniz. Ama bunun için yine bekleme listesine kaydolmanız gerekiyor. Ben kaydoldum bakalım sıra ne zaman gelecek.</p><p>GPT-4&#39;e erişmenin başka yolları da var ama ben en kolayları anlattım. Sizin bildiğiniz yöntem varsa yorumlara yazın. Tamam bu bölümde GPT-4&#39;e nasıl erişebileceğinizi anlattım. Hadi GPT-4&#39;ün fiyatlandırmasına bakalım.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F2uEpbliQDAE%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D2uEpbliQDAE&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F2uEpbliQDAE%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/68ae6bae942f96b8aaf71763c6abaa5f/href">https://medium.com/media/68ae6bae942f96b8aaf71763c6abaa5f/href</a></iframe><h3>GPT-4 API Fiyatlandırması</h3><p>Geliştiriciler GPT modellerini uygulamalarında kullanabilir. Yani sizde GPT modellerini bir API olarak kendi applerinize monte edebilirsiniz. Size güzel bir haberim var. GPT-4 API’yı hemen uygulamalarınızda kullanabilirsiniz. ChatGPT için API biraz geç çıkmıştı. OpenAI, GPT-4&#39;ün API’nı hemen kullanıma açtı.</p><p>Peki fiyatlandırma nedir derseniz hadi ücretlendirmeye bakalım. Dikkat edin GPT-4 API, gpt-4–0314 olarak isimlendirildi. Fiyatlandırma, token üzerinden yapılıyor. Token, karakter dizisi demek. Yani, tokenı, metnin en küçük parçası olarak düşünebilirsiniz. Bir token, bir sembol veya bir kelime olabilir. Ölçü olarak, 1000 token yaklaşık 750 kelimeye denk geliyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ty8m3UUSI0t5lY-6G2cAlA.jpeg" /><figcaption><a href="https://medium.com/sopmac-labs/gpt-4-api-pricing-analysis-a507a4bf9829">GPT Modellerinin Fiyatlandırması</a></figcaption></figure><p>Bakın görselde, modellerin token olarak fiyatları yer alıyor. Örneğin, 2133 token yaklaşık 1600 kelimeye karşılık geliyor. Bu kelime sayısı ile bir medium blog yazısı yazabilirsiniz. Tamamlama için bunun fiyatı 0.128 dolar, prompt için 0.064 dolar. GPT-3.5 için fiyat 0.004 dolar. Diğer modellerin fiyatlarını burada görebilirsiniz. Tabi bu modeller GPT-4 kadar güçlü değil.</p><p>En yüksek token sayısına bakalım. Bu yaklaşık 1 milyon kelimeye denk geliyormuş. Bu kelime sayısı ile Harry Potter kitaplarını yazabilirsiniz. Yani GPT-4&#39;e Harry Potter kitaplarını yazdırmanın maliyeti prompt olarak 43 dolar.</p><p>GPT-4 ile ChatGPT maliyet performans açısından karşılaştırdığımızda, Prompt için GPT-4, ChatGPT’ den 14 kat, tamamlamada 29 kat daha pahalı. Peki değer mi bu farka derseniz? Bu sizin bileceğiniz bir iş. GPT-4 gücünü grafiklerde gördünüz. Bu model, daha doğru ve daha nüanslı çıktılar veriyor. Karar sizin. GPT-4 API’ın ücretlendirmesi de bu şekilde.</p><h3>Son Sözler</h3><p>GPT-4, hem metinsel hem de görsel girdiler alan OpenAI’ın geliştirdiği son yapay zeka modeli. Bu modelle yapacaklarınızın sınırı yok. Unutmayın yapay zeka bizim rakibimiz değil yardımcımız. Yapay zekayı kullanarak hem günlük hem de mesleki projelerimizi daha kolay yapabiliriz.</p><p>Bu makalede, GPT-4&#39;ün gücünü gördük ve limitlerini inceledik. Ayrıca nereden kullanabileceğinize ve API fiyatlandırmasına baktık.</p><p>Sizin bu model hakkında düşüncüleriniz nedir? Ücretli aboneliğe geçip bu modeli kullanmaya değer mi? Bir sonraki GPT nasıl bir model olur? Cevaplarınızı merak ediyorum yorumlara yazın tartışalım.</p><p>Diğer sosyal medya hesaplarımızdan da içerikler üretiyoruz . Hadi bağlanalım: <a href="https://youtube.com/c/tirendazakademi">YouTube</a> | <a href="https://www.udemy.com/user/tirendaz-akademi-2/">Udemy</a> | <a href="https://twitter.com/TirendazAkademi">Twitter</a> | <a href="https://www.instagram.com/akademitirendaz">Instagram</a> | <a href="https://www.linkedin.com/in/tirendaz-academy">LinkedIn</a>.</p><p>Bu makalelerde dikkatinizi çekebilir 👇</p><ul><li><a href="https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-yol-haritas%C4%B1-9fb9f90f5f17">Derin Öğrenme Yol Haritası</a></li><li><a href="https://tirendazakademi.medium.com/yaz%C4%B1l%C4%B1m-%C3%B6%C4%9Frenmek-i%C3%A7in-%C3%BCcretsiz-10-web-sitesi-e077b940c6db">Yazılım Öğrenmek için Ücretsiz 10 Web Sitesi</a></li></ul><p>Yazıyı okuduğunuz için teşekkür ederim. Gelecek makalelerde görüşmek üzere.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1a9f86de15e9" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Derin Öğrenme Yol Haritası]]></title>
            <link>https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-yol-haritas%C4%B1-9fb9f90f5f17?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/9fb9f90f5f17</guid>
            <category><![CDATA[python]]></category>
            <category><![CDATA[derin-öğrenme]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[veri-bilimi]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Mon, 13 Mar 2023 20:19:47 GMT</pubDate>
            <atom:updated>2023-03-24T20:18:09.173Z</atom:updated>
            <content:encoded><![CDATA[<h4>Python ile 7 adımda yapay zekaya giriş yapın</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rI8yjwwgizrLGAcvne4qFg.jpeg" /><figcaption><a href="https://www.freepik.com/">Freepik</a></figcaption></figure><p>Derin öğrenme özellikle son 10 yılda çok popüler oldu. Son zamanlarda geliştirilen ChatGPT gibi yapay zeka araçları derin öğrenme teknikleri ile inşa edildi</p><p>Bu blog yazımda, derin öğrenmeye giriş yapacağız ve bir yol haritası çizeceğiz. Hadi bu makalede işleyeceğimiz konulara hızlıca bakalım.</p><ul><li>Derin öğrenme nedir?</li><li>Derin öğrenme vs makine öğrenmesi</li><li>Derin öğrenme algoritmaları</li><li>Derin öğrenmenin uygulama alanları</li><li>Derin öğrenme için kütüphaneler</li><li>Derin öğrenme nasıl öğrenilir?</li><li>Tavsiye kaynaklar</li></ul><p>Hadi konulara dalalım.</p><h3>Derin Öğrenme Nedir?</h3><p>Derin öğrenme aslında bir makine öğrenmesi tekniği olan yapay sinir ağları algoritmasının genişletilmiş halidir. Yapay sinir ağları, bir gizli katmandan oluşurken, derin sinir ağları birden fazla gizli katmandan oluşur.</p><p>Kısaca derin öğrenme, bir makine öğrenmesi tekniğidir ve büyük verilerdeki gizli kalıpları bulmak için kullanılır. Daha önce klasik makine öğrenmesi teknikleri ile çözülemeyen resim sınıflandırma, dilden dile çeviri ve sürücüsüz arabalar gibi problemler, derin öğrenme teknikleri ile çözülebildi.</p><blockquote>Yapay zekaya ilginiz varsa <a href="https://www.udemy.com/course/tensorflow-ile-derin-ogrenme/?referralCode=E4AF386D5F93F94FEFE6">TensorFlow ve Keras ile derin öğrenme Udemy kursumuzu</a> inceleyebilirsiniz.</blockquote><h3>Derin Öğrenme vs Makine Öğrenmesi</h3><p>Derin öğrenme, makine öğrenmesinin bir alt alanı olarak görülse de arasında bazı farkları vardır. Hadi bu farklara hızlıca bakalım.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/728/1*Q-o2MPIIEbONZdVWiGwjfg.png" /><figcaption><a href="https://www.softwaretestinghelp.com/data-mining-vs-machine-learning-vs-ai/">Machine Learning vs Deep Learning</a></figcaption></figure><h4>Veri Özellikleri</h4><p>Makine öğrenmesi, çoğunlukla tablo şeklindeki yapısal veriler için kullanılırken, derin öğrenme genellikle resim, video ve metin gibi yapısal olmayan veriler için kullanılır.</p><h4>Veri Boyutu</h4><p>Makine öğrenmesi, küçük ve orta hacimli veriler için kullanılırken, derin öğrenme büyük verileri analiz etmek için kullanılır.</p><h4>Eğitim Süresi</h4><p>Makine öğrenmesi, analizleri kısa sürerken, derin öğrenme analizleri bazen günler bazen haftalar sürebilir.</p><h4>Uygulama Alanları</h4><p>Makine öğrenmesi, genellikle sınıflandırma, regresyon ve kümeleme gibi görevleri için kullanılırken, derin öğrenme çoğunlukla görüntü, ses ve doğal dil işleme gibi alanlarda kullanılır.</p><h4>İşlem gücü</h4><p>Makine öğrenmesi projeleri basit bir bilgisayar ile yapılabilirken, derin öğrenme projeleri için güçlü bilgisayarlar gereklidir.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fs14_W_mpapw%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Ds14_W_mpapw&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fs14_W_mpapw%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/936d57a9f1ccff9aab99e231f3ab9430/href">https://medium.com/media/936d57a9f1ccff9aab99e231f3ab9430/href</a></iframe><h3>Derin Öğrenme Algoritmaları</h3><p>Derin öğrenme aslında bilimden çok sanat gibidir. Projeniz için doğru mimariyi oluşturursanız harika modeller kurabilirsiniz. Hadi derin öğrenmede kullanılan bazı algoritmalara bakalım.</p><h4>Convolutional Neural Networks (CNNs)</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/708/1*ERM2KbxLtbBg-1dpkJj5Bw.jpeg" /><figcaption><a href="https://www.analyticsvidhya.com/blog/2022/01/convolutional-neural-network-an-overview/">CNN</a></figcaption></figure><p>Bahsedeceğim ilk algoritma CNN’dir. Bu mimari, görüntü işleme alanında çığır açtı. Bu algoritmanın sayesinde, bilgisayarlar insan seviyesinde görme kabiliyeti kazandı. Bu mimari, görüntülerin içindeki desenleri algılamak ve kalıpları çıkarmak için filtreler ve katmanlar kullanır. Bu çalışma biçiminden dolayı, resimlerin sınıflandırılması, nesnelerin tanınması, yüz tanıma ve benzeri uygulamalar için genellikle bu mimari kullanılır.</p><h4>Recurrent Neural Networks (RNNs)</h4><p>CNN’ler, görüntü işlemede iyi sonuçlar verdi ama çeviri gibi doğal dil işleme analizleri için iyi performans göstermedi. Doğal dil işleme ve zaman serisi gibi örüntülerin zamanla değiştiği uygulamalar için RNN mimarisi geliştirildi. RNN’ler, geçmiş verileri hafızasında sakladı ve gelecekteki verileri tahmin etmek için bu verileri kullandı. Bu mimarinin de çeşitli handikapları vardı. Daha sonra bu handikapların üstesinden gelmek için yeni modern mimariler geliştirildi.</p><h4>Generative Adversarial Networks (GANs):</h4><p>Özellikle sanat, tasarım ve video oyunları gibi alanlarda üretimi arttırmak için çığır açan bir başka derin öğrenme algoritması GAN’lardır. GAN’lar görüntü ve doğal dil işleme gibi alanlarda veri üretmek için sık sık kullanılır. Örneğin, bir GAN, fotoğrafların benzerlerini üretebilir veya gerçekçi insan konuşması oluşturabilir. Ancak, GAN’ların bazı etik sorunları da bulunmaktadır. Sahte veriler ile insanları manipüle etmek için kullanılabilir. Tabii bu sahte verileri tespit etmek için de algoritmalar geliştiriliyor.</p><h4>Autoencoders:</h4><p>Artık günümüzde devasa boyutta veri var. Bu verileri bir bütün olarak anlamlandırmak takdir ederseniz ki çok zor. Veriyi anlamak için en iyi yöntemlerden biri boyut indirgemedir. Boyut indirgeme için Autoencoders mimarisi kullanılır. Autoencoder’lar, verilerin sıkıştırılmış bir temsilini öğrenir ve daha az boyutlu veriler üzerinde işlem yapmayı sağlar. Örneğin kalın bir kitap düşünün. Bu kitabı sadece birkaç cümleyle tanımlamak istiyorsunuz. İşte Autoencoders bu özetlemeyi yaparlar.</p><h4>Transformers</h4><p>Transformers, doğal dil işleme uygulamaları için tasarlanmış bir derin öğrenme mimarisidir. Bu mimari, matematiksel hesaplamalar yaparak, metnin anlamını ortaya çıkarır ve birçok dikkat mekanizması kullanarak metnin farklı yönlerini ele alır. Bu mimari çeviri görevlerinde harika sonuçlar verdi. Zaten son senelerde google translate ya da ChatGPT’nin nasıl insan seviyesinde çeviriler yaptığını görüyorsunuz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*V2435M1u0tiSOz4nRBfl4g.png" /><figcaption><a href="https://jalammar.github.io/illustrated-transformer/">Transformers ile Bir Çeviri Örneği</a></figcaption></figure><p>Transformers, bir cümleyi çevirirken, önce cümleyi küçük parçalara ayırır ve ardından her bir parçanın anlamını belirlemek için birçok matematiksel hesaplamalar yapar. Vee sonra bu parçaları bir araya getirerek, tam bir cümle oluşturur ve çeviri gerçekleşir. Son zamanlarda geliştirilen ChatGPT gibi yapay zeka araçları Transformers mimari kullanılarak geliştirildi.</p><h3>Derin Öğrenme Uygulama Alanları</h3><p>Derin öğrenme, bilgisayarların öğrenme ve karar verme yeteneğini arttıran bir tekniktir. Bu tekniğin, birçok farklı uygulama alanı vardır. Hadi bu alanlardan bazılarına bakalım.</p><h4>Görüntü İşleme</h4><p>Bir bilgisayar, derin öğrenme teknikleri sayesinde bir resimdeki nesneleri tanıyabilir ve bu nesneleri doğru şekilde sınıflandırabilir. Örneğin, derin öğrenmeyi, resim sınıflandırma, nesne tespiti yapma, yüz tanıma, ve görüntü restorasyonu gibi projelerde kullanabilirsiniz.</p><h4>Doğal Dil İşleme</h4><p>Derin öğrenmenin çok fazla kullanıldığı diğer bir alan doğal dil işlemedir. Örneğin, derin öğrenmeyi, çeviri, metin sınıflandırma, metin üretme, duygu analizi ve diyalog sistemleri gibi projeleride kullanılabilirsiniz. Derin öğrenmenin doğal dil işlemede son zamanlardaki en popüler uygulaması ChatGPT’ dir. ChatGPT, yapay zeka araçlarının neler yapabileceğini herkese gösterdi.</p><h4>Ses İşleme</h4><p>Derin öğrenme ile yapabileceklerinizin sınırı yok. Özellikle son zamanlarda ses işleme için derin öğrenme teknikleri çok sık kullanılıyor. Artık sizin 3 saniyelik sesinizden bir çok ses üretilebiliyor. Ses üretmenin dışında, derin öğrenmeyi, konuşma tanıma, konuşmayı sentez etme ve müzik analizi yapma gibi birçok ses işleme projesinde kullanabilirsiniz.</p><h4>Sağlık</h4><p>Derin öğrenmenin, sağlık alanında da birçok uygulaması var. Örneğin, hastalıklara tanı koyma, ilaç üretme ve sağlık analitiği yapma gibi konularda derin öğrenmeyi kullanabilirsiniz.</p><h4>Otomasyon</h4><p>Derin öğrenmenin bir diğer kullanım alanı otomasyondur. Bu teknik ile robotik ve otomatik kontrol sistemleri gibi alanlarda projeler yapabilirsiniz.</p><h4>Finans</h4><p>Derin öğrenmeyi finans alanında da kullanabilirsiniz. Örneğin, bu tekniği, finansal risk analizi, portföy yönetimi ve kredi riski tahminleme gibi konularda kullanabilirsiniz.</p><h4>Tarım</h4><p>Derin öğrenmenin bir çok kullanım alanı var ama son olarak tarım alanına bakalım. Derin öğrenmeyi, bitki hastalıklarını tespit etme, ürünleri sınıflandırma ve tahminleme gibi projeler için kullanabilirsiniz.</p><p>Burada bahsettiğim kullanımlar derin öğrenmenin sadece bir kaç uygulaması. Bu yaklaşım, birçok farklı alanlarda kullanılabilir ve gelecekte daha da fazla alanda kullanım potansiyeli var.</p><h3>Derin Öğrenme Frameworkleri</h3><p>Biraz önce bahsettiğim gibi derin öğrenme analizleri yoğun matematiksel işlemler gerektirir. Bu işlemleri elle bilgisayara yaptırmak oldukça zordur. Şanslıyız ki derin öğrenme projeleri yapmak için son zamanlarda harika kütüphaneler geliştirildi.</p><p>Aslında bunlara, kütüphaneden ziyade kompleks oldukları için framework demek daha doğru. Bu frameworkler ile harika derin öğrenme modelleri eğitebilir ve bu modellerin performansını izleyebilirsiniz. Hadi derin öğrenme için kullanabileceğiniz frameworklere bakalım.</p><h4>TensorFlow</h4><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F_M_LgQYyKxQ%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D_M_LgQYyKxQ&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F_M_LgQYyKxQ%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/a421a02dad8811dce08e8d38bf7dc069/href">https://medium.com/media/a421a02dad8811dce08e8d38bf7dc069/href</a></iframe><p>En çok kullanılan framework Google tarafından geliştirilen TensorFlow’ dur. TensorFlow ile uçtan uca derin öğrenme projelerinizi yapabilirsiniz. Bunun anlamı bu framework ile veri ön işleme, model eğitme ve modeli canlıya alma adımlarını yapabilirsiniz. TensorFlow, Python, C++ ve Java gibi farklı programlama dilleri ile kullanılabilir. Bu frameworkun, GPU ve TPU desteği vardır.</p><h4>Keras</h4><p>Ayrıca, TensorFlow, 2019 yılında daha önce ayrı bir kütüphane olan Keras’ı bünyesine kattı. Keras, yapay zeka uzmanı olmayanların bile kolayca analizler yapabildiği insan diline yakın bir API’dır.</p><p><a href="https://tirendazakademi.medium.com/keras-ile-kompleks-derin-%C3%B6%C4%9Frenme-modelleri-112d0da45af7">Keras ile Kompleks Derin Öğrenme Modelleri Nasıl Kurulur?</a></p><h4>PyTorch</h4><p>PyTorch, Facebook tarafından geliştirilen açık kaynaklı bir derin öğrenme framework’udur. Kolay ve esnek olduğundan bu framework, hızla popüler oldu. <em>Endüstride, daha çok TensorFlow kullanılırken, PyTorch genellikle akademik araştırmalar için kullanılır.</em></p><h4>Hugging Face</h4><p>Derin öğrenme için bahsedeceğim son framework Hugging Face’dir. Hugging Face, doğal dil işleme (NLP) uygulamaları için açık kaynaklı bir platformdur. Hugging Face, veri bilimcilerinin GitHub’ı olmayı amaçlıyor. Bu framework içinde hem önceden eğitilmiş modelleri hem de bir çok veri setleri bulabilirsiniz.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fir-_Ds_d8k4%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dir-_Ds_d8k4&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fir-_Ds_d8k4%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/903fde2b7e4ac00e5f0b6808758deba4/href">https://medium.com/media/903fde2b7e4ac00e5f0b6808758deba4/href</a></iframe><p>Hugging Face içindeki kütüphaneleri kullanarak hem derin öğrenme modellerinizi eğitebilir hem de bu modelleri kendi hesabınızdan canlıya alabilirsiniz. Hugging Face, PyTorch ve TensorFlow’u desteklemektedir. Bu framework, genellikle doğal dil işleme projeleri için kullanılsa da, son zamanlarda geliştirdikleri <a href="https://huggingface.co/docs/diffusers/index">Diffusers</a> kütüphanesi ile bilgisayar görüsü projeleriniz içinde kullanabilirsiniz.</p><h3>Derin Öğrenme Nasıl Öğrenilir?</h3><p>Arkadaşlar derin öğrenme projeleri yapmak için bir kaç alanı bilmeniz gerekiyor. Gözünüz korkmasın, bahsedeceğim alanları, temel düzeyde bilmeniz yeterli. Derin öğrenmenin üç ana saç ayağı var. Bunlar uygulamalı matematik, bilgisayar bilimi ve alan bilgisi.</p><h4>Uygulamalı Matematik</h4><p>Uygulamalı matematik, özellikle, lineer cebir, olasılık ve istatistiği kapsıyor. Derin öğrenme modelleri, matris hesaplamaları üzerine kurulduğu için lineer cebir, temel bir konudur.</p><p>Olasılık, bildiğiniz gibi verilerin olasılık dağılımlarını anlamak için kullanılır. Derin öğrenme modelleri, aslında verilerin olasılık dağılımlarını tahmin eder. Dolayısıyla, derin öğrenme için olasılık teorisini bilmek önemlidir.</p><p>Derin öğrenme için bir diğer önemli alan istatistiktir. İstatistik, bildiğiniz gibi verilerin analiz edilmesi, keşfedilmesi ve özetlenmesi için kullanılan bir bilim dalıdır. Derin öğrenmede ortalama, standart sapma, veriyi standartlaştırma, regülerleştirme, metrikler gibi teknikler sık sık kullanılır. Dolayısıyla, temel istatistiksel teknikleri bilmek, daha iyi derin öğrenme modelleri kurmanıza yardımcı olur.</p><h4>Bilgisayar Bilimi</h4><p>Derin öğrenmenin bir diğer saç ayağı bilgisayar bilimidir. Derin öğrenme için öncelikle bir programlama dili öğrenmelisiniz. Bu alanda en çok kullanılan programlama dili Python’dır. Python’ın yazım dili kolay olduğu için bir çok kütüphane bu dilde yazılmıştır. Derin öğrenme analizlerinizi daha hızlı yapmak için paralel programlama tekniklerini kullanabilirsiniz.</p><h4>Alan Bilgisi</h4><p>Derin öğrenme için bir diğer saç ayağı alan bilgisi. Büyük verinin, derin öğrenme için çok önemli olduğunu söylemiştik. Veriler hangi alandan geliyorsa o alanla ilgili bilgi sahibi olmanız daha doğru derin öğrenme modelleri kurmanızı sağlar.</p><h3>Derin Öğrenme için Kaynaklar</h3><p>Bir konuyu öğrenmek için herkesin ayrı bir yoğurt yiyişi vardır. Kimi video izleyerek kimi okuyarak öğrenmeyi seviyor. Ben hem izleyerek hem de okuyarak öğrenmeyi seviyorum. Derin öğrenme için hem görsel hem de yazılı birçok kaynak var. Bu kaynakları, veri bilimi için kaynaklar isimli GitHub sayfamızda toplamaya çalışıyorum.</p><p><a href="https://github.com/TirendazAcademy/Awesome-Data-Science-Resources">GitHub - TirendazAcademy/Awesome-Data-Science-Resources: This repo contains resources on data scince, machine learning, deep learning, data engineering, and SQL.</a></p><p>Bu repoda derin öğrenme ile ilgili ücretli ücretsiz birçok kaynak bulabilirsiniz. Siz de bu repoya katkıda bulunabilirsiniz. Bu bölümde, severek okuduğum kitaplardan bahsetmek istiyorum.</p><h4>Hands-On Machine Learning with Scikit-Learn &amp; TensorFlow</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Zf8V1LXWJYzdVpGd7jP7WQ.png" /></figure><p>Derin öğrenme için önereceğim ilk kitap, Hands-On Machine Learning kitabıdır. Derin öğrenme için kitap tavsiyesi istendiğinde genellikle ilk bu kitap akla gelir. Bu kitap iki bölümden oluşuyor. İlk bölümde, Scikit-Learn ile makine öğrenmesi ve ikinci bölümde TensorFlow ve Keras ile derin öğrenme anlatılıyor. Gerçekten teori ve pratiği beraber veren ender kitaplardan biri. Geçen sene üçüncü baskısı çıktı. Zevkle okuyacağınız bir kitap.</p><h4>Deep Learning with Python</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0UshGH7BdSjD34IAMTUClA.png" /></figure><p>Diğer bir önereceğim kitap Deep Learning with Python kitabıdır. Bu kitapta, gerçekten derin öğrenme için efsane bir kitap. Bu kitap, Keras’ın geliştiricisi tarafından yazıldı. Şu an TensorFlow’da Keras takım lideri olarak çalışıyor. Uygulamalar ile derin öğrenmenin temellerini öğrenmek için harika bir kitap. Geçenlerde bu kitabın ikinci baskısı çıktı.</p><h4>AI and Machine Learning for Coders</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y_uhf3usqXRvJ3q8_BysUg.png" /></figure><p>Üçüncü olarak önereceğim kitap AI and Machine Learning for Coders. Bu kitabı da sıkılmadan okuyacağınızı düşünüyorum. Kitap, TensorFlow ile direk yapay zeka tekniklerini öğretmekle başlıyor. Adım adım uygulamalar ile derin öğrenmeyi öğretiyor. Bilgisayar görüsü, doğal dil işleme ve zaman serileri gibi alanlarda yeniyseniz bu kitap tam size göre. Bu kitap, ayrıca TensorFlow ekosistemini de çok güzel anlatıyor.</p><h4>Python Machine Learning with PyTorch &amp; Scikit-Learn</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ksKEnXaqTdmL4dRjvrEUzQ.png" /></figure><p>PyTorch ile yazılmış diğer bir derin öğrenme kitabı Python Machine Learning. Bu kitapta iki bölümden oluşuyor. İlk bölümde Scikit-Learn ile makine öğrenmesi algoritmaları anlatılıyor. İkinci bölümde, PyTorch ile derin öğrenme teknikleri gösteriliyor.</p><h3>Son Sözler</h3><p>Tebrikler. Bu yazıda derin öğrenme için bilmeniz gereken konuları öğrendiniz. En iyi öğrenme yaparak öğrenmedir. Kaggle gibi platformlardaki veri setlerini kullanarak bol bol derin öğrenme alıştırmaları yapabilirsiniz. Derin öğrenme analizleri için GPU veya TPU gereklidir. Bunun için ücretsiz GPU ve TPU desteği sağlayan Google Colab veya Kaggle platformlarını kullanabilirsiniz.</p><p>Makaleyi okuduğunuz için teşekkür ederim. Bu yazıyı beğendiyseniz aşağıdaki alkış tuşuna bir kaç kez basmayı ve arkadaşlarınız ile paylaşmayı unutmayın. Hadi bağlanalım: <a href="https://youtube.com/c/tirendazakademi">YouTube</a> | <a href="https://www.udemy.com/user/tirendaz-akademi-2/">Udemy</a> | <a href="https://twitter.com/TirendazAkademi">Twitter</a> | <a href="https://www.instagram.com/akademitirendaz">Instagram</a> 😊</p><ul><li><a href="https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-i%C3%A7in-yapay-sinir-a%C4%9Flar%C4%B1-24edd662dc73">Derin Öğrenme için Yapay Sinir Ağları</a></li><li><a href="https://tirendazakademi.medium.com/keras-ile-kompleks-derin-%C3%B6%C4%9Frenme-modelleri-112d0da45af7">Keras ile Kompleks Derin Öğrenme Modelleri Nasıl Kurulur?</a></li></ul><p>Gelecek yazılarda görüşmek üzere. Şimdilik hoşça kalın.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9fb9f90f5f17" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Keras Subclassing API ile Derin Öğrenme]]></title>
            <link>https://tirendazakademi.medium.com/keras-subclassing-api-ile-derin-%C3%B6%C4%9Frenme-katmanlar%C4%B1-9aaedfff2a0c?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/9aaedfff2a0c</guid>
            <category><![CDATA[derin-öğrenme]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[tensorflow]]></category>
            <category><![CDATA[veri-bilimi]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Fri, 10 Mar 2023 07:51:46 GMT</pubDate>
            <atom:updated>2023-03-24T20:19:32.257Z</atom:updated>
            <content:encoded><![CDATA[<h4>TensorFlow ile esnek ve dinamik yapay sinir ağı katmanları nasıl oluşturulur?</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mWTA66hu3cWhHkvWJ7xDAQ.jpeg" /><figcaption><a href="https://www.freepik.com/">Freepik</a></figcaption></figure><p>Keras ile üç türlü model oluşturabilirsiniz. Bunlardan en kolayı Sequential API’dir. Bu API ile yapay zeka uzmanı olmayanlar bile kolayca basit derin öğrenme modelleri kurabilir. Ama esnek olmadığı için bu yöntemi kullanarak kompleks modeller kurmak zordur. Çok girdili ve çok çıktılı modeller kurmak için Funcional API kullanmak daha iyidir. Bu yöntem hem basittir hem de esnektir.</p><p>Hem Sequential API hem de Functional API deklaratiftir. Yani kullanmak istediğiniz katmanları ve bu katmanların nasıl bağlanacağını deklare etmekle modelin mimarisini oluşturursunuz. Daha sonra bu modeli veriler ile beslersiniz. Bu şekilde yaparak modelinizi kolayca kaydedebilir, kopyalayabilir ve paylaşabilirsiniz. Deklaratif yaklaşımda modelin tamamı, sabit katman grafiklerinden oluştuğu için hata ayıklamak oldukça basittir. Functional API nasıl kullanıldığını görmek için aşağıdaki makaleyi inceleyebilirsiniz.</p><p><a href="https://tirendazakademi.medium.com/keras-ile-kompleks-derin-%C3%B6%C4%9Frenme-modelleri-112d0da45af7">Keras ile Kompleks Derin Öğrenme Modelleri Nasıl Kurulur?</a></p><p>Tamam, Sequential API ve Functional API’nin avantajlarını gördük ve bu API’lerin deklaratif bir yaklaşım olduğunu öğrendik. Fakat dinamik modeller kurmak için deklaratif yaklaşım uygun değildir. Örneğin, bazı modeller döngüler, koşullu dallanmalar ve diğer bazı dinamik davranışlar içerebilir. Böyle durumlarda Subclassing API kullanmak daha iyidir. Akademik araştırmalar için genellikle daha dinamik olduğu için Subclassing API kullanılır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vHONxmPtdZsE-wkGcWaUeA.png" /><figcaption><a href="https://towardsdatascience.com/3-ways-to-build-neural-networks-in-tensorflow-with-the-keras-api-80e92d3b5b7e">Sequential API vs Functional API vs Subclassing API</a></figcaption></figure><p>Bu makalede, Subclassing API ile nasıl esnek ve dinamik derin öğrenme katmanları oluşturulacağını göstereceğim.</p><blockquote>Yapay zekaya ilginiz varsa <a href="https://www.udemy.com/course/tensorflow-ile-derin-ogrenme/?referralCode=E4AF386D5F93F94FEFE6">TensorFlow ve Keras ile derin öğrenme Udemy kursumuzu</a> inceleyebilirsiniz.</blockquote><h3>Keras Subclassing API Nedir?</h3><p>Subclassing API, Keras kütüphanesinin bir parçasıdır ve yapay sinir ağı modellerinin kurulmasında kullanılır. Bu API, Keras Sequential veya Functional API’den farklı olarak, model sınıfının alt sınıf olarak tanımlanmasını ve ağın doğrudan alt sınıftan üretilmesini sağlar. Eğer araştırma projesi veya akademik çalışmalar yapacaksanız Subclassing API yaklaşımı tam size göre.</p><p>Subclassing API’nin avantajlarından biri, ağ mimarisindeki herhangi bir özelleştirme gerektiğinde daha fazla esneklik sağlamasıdır. Bununla birlikte, API’nin kullanımı, kod yazma ve hata ayıklama açısından diğer Keras API’lerine göre daha zor olabilir.</p><p>Tamam kısaca Subclassing API’ye kısaca baktık. Hadi bu API ile esnek ve dinamik katmanlar ve modeller kurabilirsiniz. Bu makalede Subclassing API ile özelleştirilmiş katmanlar nasıl oluşturulacağına odaklanacağız. Hadi basit bir katman oluşturmak ile başlayalım.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fu-ZqOSrM3Ko&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Du-ZqOSrM3Ko&amp;image=http%3A%2F%2Fi.ytimg.com%2Fvi%2Fu-ZqOSrM3Ko%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e588bfefc7b1c73ff4ddcd03ddce6f7c/href">https://medium.com/media/e588bfefc7b1c73ff4ddcd03ddce6f7c/href</a></iframe><h3>Keras Subclassing API ile Katman Oluşturma</h3><p>Bu bölümde sıfırdan Subclassing API ile basit bir katman nasıl oluşturulur göreceğiz. Bildiğiniz gibi derin öğrenme modellerinde genellikle dense katman kullanılır. Dense katman kendinden önceki bütün nöronlar ile bağlantılıdır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*y2gZMoo_D9GiIW9zzLjtWw.jpeg" /><figcaption><a href="https://pysource.com/2022/10/07/flatten-and-dense-layers-computer-vision-with-keras-p-6/">Dense Katmanlı bir Yapay Sinir Ağı</a></figcaption></figure><p>Hadi Subclassing API’yi kullanarak tam bağlantılı bir dense katman oluşturalım. Bunun için keras.layers.Layer sınıfından miras alan bir sınıf oluşturmamız gerekir.</p><p>Bunu göstermek için öncelikle TensorFlow ve Keras’ı import edelim.</p><pre>import tensorflow as tf <br>from tensorflow import keras</pre><p>Şimdi Linear isminde bir sınıf oluşturalım. Dikkat edin burada, önce ağırlıkları ve bias’i tanımlayacağız daha sonra bu örnek nitelikleri ile işlem yapmak için bir call metodu tanımlayacağız.</p><pre>class Linear(keras.layers.Layer):<br>  def __init__(self, units=32, input_dim = 32):<br>    super(Linear,self).__init__()<br>    # Katman ağırlıklarını oluşturalım<br>    w_init= tf.random_normal_initializer()<br>    self.w=tf.Variable(<br>        initial_value=w_init(shape=(input_dim,units), dtype=&quot;float32&quot;),<br>        trainable=True <br>    )<br>    # bias oluşturalım<br>    b_init = tf.zeros_initializer()<br>    self.b = tf.Variable(<br>        initial_value=b_init(shape=(units,), dtype=&quot;float32&quot;),<br>        trainable=True<br>    )<br>  <br>  def call(self,inputs):<br>    return tf.matmul(inputs, self.w) + self.b</pre><p>İşte bu kadar. Subclassing API ile basit bir dense katmanı oluşturduk.</p><p>Bu esnek katmanının nasıl çalıştığını görmek için bir örnek veri alalım ve bu örnek veriyi katman üzerinden geçirelim. Hadi bir girdi verisi oluşturalım. Bunun için basitçe 1 değerlerini içeren, 2*2 boyutlarında bir matris oluşturalım.</p><pre>x = tf.ones((2,2))<br>print(x)<br><br># Output: <br>&lt;tf.Tensor: shape=(2, 2), dtype=float32, numpy=<br>array([[1., 1.],<br>       [1., 1.]], dtype=float32)&gt;</pre><p>Bu bizim girdi verimiz olacak. Şimdi bu Linear sınıfından bir örnek alalım. Bu katmanın nöron sayısı için 4 ve girdi boyutu için 2 yazalım.</p><pre>linear_layer = Linear(4, 2)</pre><p>Tamam, sınıftan bir katman örneği oluşturduk. Şimdi verimizi bu katmandan geçirelim.</p><pre>y = linear_layer(x)<br>print(y)<br><br># Ouyput:<br>&lt;tf.Tensor: shape=(2, 4), dtype=float32, numpy=<br>array([[ 0.06356013, -0.02136349,  0.0958024 ,  0.04870867],<br>       [ 0.06356013, -0.02136349,  0.0958024 ,  0.04870867]],dtype=float32)&gt;</pre><p>Bammm. İşte Keras Subclassing API kullanarak esnek bir katman örneği oluşturduk ve katmandan örnek verileri geçirdik.</p><p>Burada ne oldu? Önce rasgele başlangıç ağırlıkları üretildi. Sonra bu değerler, x girdisi ile matris çarpımı yapıldı. Ve çıkan sonuca bir bias eklendi.</p><p>Bu katmandaki ağırlıkların ve biaslerin izlendiğini unutmayın. Hadi bu katmanda kullanılan ağırlıkları ve bias değerlerini görelim. Bunun için weights niteliğini kullanalım.</p><pre>print(linear_layer.weights)<br><br># Output:<br>[&lt;tf.Variable &#39;Variable:0&#39; shape=(2, 4) dtype=float32, numpy=<br> array([[ 0.08850016, -0.0294551 ,  0.04489021,  0.01145601],<br>        [-0.02494004,  0.0080916 ,  0.0509122 ,  0.03725266]],<br>       dtype=float32)&gt;,<br> &lt;tf.Variable &#39;Variable:0&#39; shape=(4,) dtype=float32, numpy=array([0., 0., 0., 0.], dtype=float32)&gt;]</pre><p>İlk kısım başlangıç ağırlıklarını ve ikinci kısım bias değerlerini gösteriyor. Hatırlarsanız bias başlangıçta sıfır değerlerinden oluşuyordu. Burada bu sıfır değerlerini görebilirsiniz.</p><h3>Katman Ağırlıklarını Oluşturmak için Kısa Yol</h3><p>Bir katmana ağırlık eklemek için biraz önce TensorFlow’daki Variable’ı kullandık. Katmana ağırlık eklemek için add_weight() metodunu da kullanabilirsiniz. Hadi bu metodun nasıl kullanıldığını görelim.</p><pre>from tensorflow.python.ops.init_ops_v2 import Initializer<br>class Linear(keras.layers.Layer):<br>  def __init__(self, units=32, input_dim = 32):<br>    super(Linear,self).__init__()<br>    # Ağırlıkları oluşturalım<br>    self.w = self.add_weight(shape=(input_dim, units),<br>                             initializer=&quot;random_normal&quot;,<br>                             trainable = True)<br>    # Bias oluşturalım<br>    self.b = self.add_weight(shape=(units),<br>                             initializer = &quot;zeros&quot;,<br>                             trainable = True)<br>  def call(self,inputs):<br>    return tf.matmul(inputs, self.w) + self.b  </pre><p>Harika add_weight metodunu kullanarak esnek bir katman oluşturduk. Hadi örnek verilerimizi bu katman üzerinden geçirelim.</p><pre>x = tf.ones((2, 2))<br>linear_layer = Linear(4, 2)<br>y = linear_layer(x)<br>print(y)<br><br># Output:<br>&lt;tf.Tensor: shape=(2, 4), dtype=float32, numpy=<br>array([[0.07724835, 0.0008499 , 0.106326  , 0.02716313],<br>       [0.07724835, 0.0008499 , 0.106326  , 0.02716313]], dtype=float32)&gt;</pre><p>Gördüğünüz gibi katmanın üzerinden veriler geçti ve çıktı değerleri üretildi.</p><h3>Veri Boyutu Girmeden Katman Oluşturma</h3><p>Yukardaki örnekte input_dim argümanını, shape parametresine geçirdik. Fakat bir çok durumda girdilerinizin boyutunu önceden bilemeyebilirsiniz. Hatta bazen katmanı örneklendirdikten sonra girdi boyutunu katmana geçirmek isteyebilirsiniz. Böyle durumlarda sınıfa bir build metodu ekleyip ağırlıkları bu metotta oluşturabilirsiniz. Hadi bunun nasıl yapıldığını görelim.</p><pre>class Linear(keras.layers.Layer):<br>  def __init__(self, units=32):<br>    super(Linear,self).__init__()<br>    self.units = units<br>  # Ağırlıkları oluşturma<br>  def build(self,input_shape):<br>    self.w = self.add_weight(shape=(input_shape[-1],self.units),<br>                             initializer = &quot;random_normal&quot;,<br>                             trainable = True)<br>    self.b = self.add_weight(shape = (self.units,),<br>                             initializer = &quot;random_normal&quot;,<br>                             trainable = True)<br>  def call(self, inputs):<br>    return tf.matmul(inputs, self.w) + self.b               </pre><p>Bu katmanda call metodu çağırıldığında build metodu otomatik olarak çalışacak. Şimdi bu sınıftan bir katman örneği alalım.</p><pre>linear_layer = Linear(32)</pre><p>Dikkat edin bu örnekte girdinin boyutunu yazmadık. Sadece nöron sayısını belirledik. Şimdi girdimizi katmana verelim.</p><pre>y = linear_layer(x)<br>print(y)<br><br># Output:<br>&lt;tf.Tensor: shape=(2, 32), dtype=float32, numpy=<br>array([[ 0.12529299, -0.0561902 ,  0.03834991, -0.07893594,  0.00859061,<br>         0.08317355, -0.05678261,  0.0037364 , -0.04070574, -0.12113686,<br>         0.03729274,  0.01368941, -0.05131226,  0.03087646, -0.02225749,<br>         0.04070945,  0.01450459,  0.08193067,  0.0622445 ,  0.1920329 ,<br>        -0.0106803 , -0.07432184,  0.003447  ,  0.11814891, -0.07613041,<br>         0.01972482, -0.08320747,  0.13414364,  0.00047702, -0.15275721,<br>         0.09923995, -0.06166402],<br>       [ 0.12529299, -0.0561902 ,  0.03834991, -0.07893594,  0.00859061,<br>         0.08317355, -0.05678261,  0.0037364 , -0.04070574, -0.12113686,<br>         0.03729274,  0.01368941, -0.05131226,  0.03087646, -0.02225749,<br>         0.04070945,  0.01450459,  0.08193067,  0.0622445 ,  0.1920329 ,<br>        -0.0106803 , -0.07432184,  0.003447  ,  0.11814891, -0.07613041,<br>         0.01972482, -0.08320747,  0.13414364,  0.00047702, -0.15275721,<br>         0.09923995, -0.06166402]], dtype=float32)&gt;</pre><p>Bammm. Girdimizin boyutunu girmeden katmandan verileri geçirdik. Harika, girdi boyutunu bilmediğimiz durumlarda nasıl katman oluşturacağımızı gördük.</p><h3>Katmanlardan Oluşan Bloklar</h3><p>Bazen art arda gelen katmanları birleştirmek isteyebilirsiniz. Yani veriler bir katmana girsin sonra bu katmandan çıkan değerler diğer bir katmana girsin şeklinde devam etsin. Hadi bir katmanın örneğinin diğer bir katmana girdi olarak geçtiği bir senaryo düşünelim.</p><p>Bu senaryo aslında aşağıdaki makalede anlattığım çok katmanlı bir perceptron yani kısaca MLP.</p><p><a href="https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-i%C3%A7in-yapay-sinir-a%C4%9Flar%C4%B1-24edd662dc73">Derin Öğrenme için Yapay Sinir Ağları</a></p><p>Hadi art arda gelen katmanlardan oluşan bir sinir ağı inşa edelim.</p><pre>class MLPBlock(keras.layers.Layer):<br>  def __init__(self):<br>    super(MLPBlock, self).__init__()<br>    # Katmanları tanımlayalım<br>    self.linear_1 = Linear(32)<br>    self.linear_2 = Linear(32)<br>    self.linear_3 = Linear(1)<br>  <br>  # Katman işlemlerini tanımlayalım<br>  def call(self, inputs):<br>    x = self.linear_1(inputs)<br>    x = tf.nn.relu(x)<br>    x = self.linear_2(x)<br>    x = tf.nn.relu(x)<br>    return self.linear_3(x)</pre><p>Tamam, böylece art arda katmanlardan oluşan ve bu katmanların birbirine bağlandığı bir blok oluşturduk. Bu yaklaşım, dıştaki katmanın içteki katmanın ağırlıklarını kullanmasını sağlar. Şimdi bu sınıftan bir örnek alalım.</p><pre>mlp = MLPBlock()</pre><p>Bu sınıfa bir veri verelim.</p><pre>y = mlp(tf.ones(shape=(3, 64)))</pre><p>Tamam, veriler 3 katmanlı bloktan geçti. Hadi ağırlıklara bakalım.</p><pre>print(mlp.weights)<br><br># Output:<br>[&lt;tf.Variable &#39;mlp_block/linear_5/Variable:0&#39; shape=(64, 32) dtype=float32, numpy=<br> array([[ 0.03181227, -0.03552845, -0.00532066, ...,  0.12079153,<br>         -0.07475913,  0.0099043 ],<br>        [ 0.0015341 , -0.02581516, -0.03239488, ...,  0.0370282 ,<br>          0.02811593, -0.03380568],<br>        [-0.00715649,  0.0582541 ,  0.04256558, ...,  0.0377348 ,<br>          0.10212301, -0.03072884],<br>        ...,<br>        [ 0.05020842, -0.10764688,  0.00189259, ..., -0.0117731 ,<br>          0.02547028, -0.06487002],<br>        [-0.00168144, -0.01505039, -0.0209573 , ..., -0.01630844,<br>         -0.0164077 , -0.07637613],<br>        [-0.05147887,  0.09903259,  0.01605012, ...,  0.02922877,<br>          0.0156203 ,  0.07475672]], dtype=float32)&gt;,<br> &lt;tf.Variable &#39;mlp_block/linear_5/Variable:0&#39; shape=(32,) dtype=float32, numpy=<br> array([-0.01699487,  0.01961638,  0.04468011, -0.07827999,  0.06531694,<br>         0.04750273, -0.01846105, -0.04750106,  0.04930599,  0.03066118,<br>        -0.13191342, -0.00432053,  0.04816367,  0.11426394,  0.01057771,<br>         0.07847259, -0.05077245,  0.08985738,  0.02169767, -0.02449624,<br>         0.00086025,  0.01822815, -0.01215468,  0.01937916, -0.0667214 ,<br>         0.05271372,  0.02958361, -0.08584312, -0.00931098, -0.07165599,<br>        -0.05130129,  0.01846607], dtype=float32)&gt;,<br>....<br>....<br>....</pre><p>Bammm. Gördüğünüz gibi her üç katman için ağırlıklar ve biasler hesaplandı.</p><p>Unutmayın, TensorFlow blok katmanlar oluştururken, __init__() fonksiyonunda katmanları oluşturmanızı ve call metodunda ağırlıkların hesaplanmasını öneriyor.</p><p>Bu yazının daha ayrıntılı anlatımını aşağıdaki videoda bulabilirsiniz.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FEr71Yf3aJts%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DEr71Yf3aJts&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FEr71Yf3aJts%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/aa13dcde3f482fbc77dcde3ce052f311/href">https://medium.com/media/aa13dcde3f482fbc77dcde3ce052f311/href</a></iframe><h3>Son Sözler</h3><p>Tebrikler. Bu makalede Keras Subclassing API ile nasıl esnek katmanlar oluşturabileceğinizi öğrendiniz. Keras Subclassing API ile esnek loss ve metrik fonksiyonları da oluşturabilirsiniz. Bu yazıda kullandığım notebooka <a href="https://github.com/TirendazAcademy/Deep-Learning-with-TensorFlow/blob/main/Keras_Custom_Layer.ipynb">buradan</a> ulaşabilirsiniz.</p><p>Makaleyi okuduğunuz için teşekkür ederim. Bu yazıyı beğendiyseniz aşağıdaki alkış tuşuna bir kaç kez basmayı ve arkadaşlarınız ile paylaşmayı unutmayın. Hadi bağlanalım: <a href="https://youtube.com/c/tirendazakademi">YouTube</a> | <a href="https://www.udemy.com/user/tirendaz-akademi-2/">Udemy</a> | <a href="https://twitter.com/TirendazAkademi">Twitter</a> | <a href="https://www.instagram.com/akademitirendaz">Instagram</a> 😊</p><p>Aşağıdaki makaleler de dikkatinizi çekebilir:</p><ul><li><a href="https://tirendazakademi.medium.com/makine-%C3%B6%C4%9Frenmesi-yol-haritas%C4%B1-2023-4418c290fc00">Makine Öğrenmesi Yol Haritası 2023</a></li><li><a href="https://tirendazakademi.medium.com/makine-%C3%B6%C4%9Frenmesi-ekosistemi-9acaad4eb92a">Makine Öğrenmesi için Bilmeniz Gereken Kütüphaneler</a></li></ul><p>Gelecek yazılarda görüşmek üzere. Şimdilik hoşça kalın.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9aaedfff2a0c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Keras ile Kompleks Derin Öğrenme Modelleri Nasıl Kurulur?]]></title>
            <link>https://tirendazakademi.medium.com/keras-ile-kompleks-derin-%C3%B6%C4%9Frenme-modelleri-112d0da45af7?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/112d0da45af7</guid>
            <category><![CDATA[yapay-sinir-ağları]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[veri-bilimi]]></category>
            <category><![CDATA[derin-öğrenme]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Mon, 06 Mar 2023 11:06:02 GMT</pubDate>
            <atom:updated>2023-03-24T14:51:33.118Z</atom:updated>
            <content:encoded><![CDATA[<p>TensorFlow içindeki Keras Functional API ile modern sinir ağlarını inşa etme</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*umnNf6yMZ6uH9bxAThLhSA.jpeg" /><figcaption><a href="https://www.freepik.com/">Freepik</a></figcaption></figure><p>Keras Sequential API ile kolay ve temiz bir şekilde modeller kurabilirsiniz. Fakat, çoklu girdilerin ve çıktıların olduğu kompleks modeller kurmak için bu API, çok kullanışlı değildir. Kompleks modeller için daha esnek olduğu için Keras Functional API kullanmak daha mantıklıdır.</p><p>Bunu göstermek için 2016&#39;da ortaya çıkan Wide &amp; Deep sinir ağı mimarisini ele alalım.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/432/1*BK5V-dxZ7lLrPff1uXdCYw.png" /><figcaption><a href="https://www.oreilly.com/library/view/hands-on-machine-learning/9781098125967/">Kaynak</a></figcaption></figure><p>Bu mimari, verideki, hem derin kalıpları hem de basit kuralları bulmaya yardımcı olur.</p><blockquote>Yapay zekaya ilginiz varsa <a href="https://www.udemy.com/course/tensorflow-ile-derin-ogrenme/?referralCode=E4AF386D5F93F94FEFE6">TensorFlow ve Keras ile derin öğrenme Udemy kursumuzu</a> şiddetle tavsiye ederim. İndirim kuponu için tirendaziletisim@gmail.com adresine mail atmanız yeterli.</blockquote><p>Hadi bu deep-wide sinir ağını Keras Functional API ile nasıl kuracağımıza bakalım.</p><h3>Veri Setini Yükleme</h3><p>Keras Functional API nasıl kullanıldığını göstermek için Scikit -Learn’ deki California Housing veri setini kullanalım. Bu veri setini fetch_california_housing fonksiyonu ile yükleyelim.</p><pre>from sklearn.datasets import fetch_california_housing<br>housing = fetch_california_housing()</pre><p>Tamam veri setini yükledik. Şimdi eğitim ve test verilerini oluşturalım. Unutmayın eğitim verisi ile model kurulur, test verisi ile model değerlendirilir. Veri setini parçalamak için Scikit-Learn’ deki train_test_split fonksiyonunu kullanalım.</p><pre>from sklearn.model_selection import train_test_split<br>X_train, X_test, y_train, y_test = train_test_split(<br>    housing.data, housing.target,random_state=42)</pre><p>Tamam veri setlerimiz model için hazır. Şimdi Functional API ile derin sinir ağımızı inşa edelim.</p><h3>Derin Sinir Ağı Modeli Kurma</h3><p>Öncelikle rasgeleliği sabitlemek için TensorFlow’daki set.seed fonksiyonunu kullanalım.</p><pre>import tensorflow as tf<br>tf.random.set_seed(42)</pre><p>Şimdi katmanlarımızı tek tek inşa edelim. Unutmayın önce kullanacağımız katmanları oluşturacağız sonra bu katmanlar ile modelimizi inşa edeceğiz.</p><pre>normalization_layer = tf.keras.layers.Normalization()         #(1)<br>hidden_layer1 = tf.keras.layers.Dense(30, activation=&quot;relu&quot;)  #(2)<br>hidden_layer2 = tf.keras.layers.Dense(30, activation=&quot;relu&quot;)<br>concat_layer = tf.keras.layers.Concatenate()                  #(3)<br>output_layer = tf.keras.layers.Dense(1)                       #(4)</pre><p>Hadi bu kodların üzerinden geçelim.</p><p>(1) Öncelikle Normalization katmanını yazdık. Bu katman, Scikit-Learn’ deki StandardScaler’ın yaptığı işi yapar. Yani bu fonksiyon sayısal verileri normalleştirmemize yardımcı olur. Bu katmanı kullanmak için adapt metodunu çağırmamız gerekecek. Bu metot, verilerinin ortalaması ve varyansını hesaplar. Bu metodu fit metodundan önce çağırıcağız. Bu katmanı kullandığımız için Flatten katmanı kullanmamıza gerek yok.</p><p>(2) Normalization katmanından sonra iki gizli katman oluşturduk. Bu katmanlara 30 nöron geçirdim ve aktivasyon fonksiyonu olarak ReLU yazdık.</p><p>(3) Katmanlarımızı birleştirmek için concat_layer isminde bir birleştirme katmanı oluşturduk. Bu katmanda istediğimiz katmanların çıktılarını birleştirebiliriz.</p><p>(4) En son çıktı katmanını yazdık. Problemimiz regresyon olduğu için yani sadece bir sayısal değer tahmin edeceğimiz için çıktı katmanına bir nöron geçirdik.</p><p>Tamam, böylece modelde kullanacağımız katmanları oluşturduk. Şimdi bu katmanlar ile sinir ağımızı inşa edelim.</p><pre>input_ = tf.keras.layers.Input(shape=X_train.shape[1:])<br>normalized = normalization_layer(input_)<br>hidden1 = hidden_layer1(normalized)<br>hidden2 = hidden_layer2(hidden1)<br>concat = concat_layer([normalized, hidden2])<br>output = output_layer(concat)</pre><p>Hadi bu kodların üzerinden geçelim. Önce girdi değişkenimizi oluşturduk. Daha sonra normalleştirme katmanını yazdık. Verilerimiz normalleştirme katmanından geçtikten sonra, gizli katmana gelecek. Dolayısıyla normalleştirme katmanı değişkenini gizli katmana girdi olarak verdik. Dikkat ederseniz Functional API’da bir katmanın çıktısını diğer katmana girdi olarak veriyoruz. Daha sonra ilk gizli katman çıktısını ikinci gizli katmana girdi olarak yazdık. Ardından girdi ve ikinci gizli katmanın çıktısını birleştirmek için birleştirme katmanını kullandık. En son bu birleştirme katmanından geçen verileri çıktı katmana verdik.</p><p>Harika, tek tek katmanların girdilerini ve çıktılarını oluşturduk. Şimdi bir Keras modeli oluşturalım. Modeli kurarken girdilerimizi ve çıktılarımızı modele geçirelim.</p><pre>model = tf.keras.Model(inputs=[input_], outputs=[output])</pre><p>Hadi şimdi summary metodu ile modelimizin özetini görelim.</p><pre>model.summary()</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*bjYk4uduLHLc9Zh5X4-UNQ.png" /><figcaption>Model Özeti</figcaption></figure><p>Bu tabloda, katmanları, katmanların çıktılarını, parametre sayılarını ve bağlantılı katmanları görebilirsiniz. Dikkat ederseniz, Concatenate katmanı, input ve dense 1 yani ikinci gizli katmanla bağlantılı. Buradaki none, batch sayısı yerine kullanılıyor. Batch sayımız ne ise bu sayı none yerine geçecek.</p><p>Tamam, böylece model mimarimizi oluşturduk. Şimdi modeli derleyelim. Modeli derlerken loss fonksiyonu, optimizer ve kullanacağınız metriği probleminize göre belirlemelisiniz.</p><pre>optimizer = tf.keras.optimizers.Adam(learning_rate=1e-3)<br><br>model.compile(<br>    loss=&quot;mse&quot;, <br>    optimizer=optimizer, <br>    metrics=[&quot;RootMeanSquaredError&quot;])</pre><p>Harika, modelimizi derledik. Artık modelimiz eğitim için hazır.</p><h3>Model Eğitim</h3><p>Modeli eğitmek için fit metodunu çağıracağız. Fakat daha önce eğitim verilerini normalleştirmek için adapt metodunu kullanalım. Bu metot normaleştirme için eğitim verilerinin ortalamasını ve standart sapmasını hesaplayacak.</p><pre>normalization_layer.adapt(X_train)</pre><p>Artık modeli fit metodunu çağırarak eğitmeye hazırız. Validasyon verisi kullanmak için validation_split parametresini kullanalım.</p><pre>history = model.fit(X_train, y_train, epochs=20, validation_split=0.2)</pre><p>Bu komutu çalıştırdığımızda model eğitilmeye başlar.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sbwSNqrr-uxb42nEOb5G2Q.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pFboDwAT343qNIJry5esgA.png" /></figure><p>Dikkat ederseniz her bir epoch’da eğitim ve validasyon veri setleri için loss ve metrik değerleri hesaplanıyor. Her bir epoch’da loss değerlerinin düştüğünü görüyoruz. Bu modelin verilerden öğrendiği anlamına gelir. Buradaki amacım Functional API’nin nasıl kullanılacağını göstermek. Siz daha farklı mimariler ile daha iyi modeller inşa edebilirsiniz.</p><h3>Model Değerlendirme</h3><p>Modelimizi eğittikten sonra test veri seti üzerinde performansını görelim. Bunun için evaluate metodunu çağırmamız yeterli.</p><pre>mse_test = model.evaluate(X_test, y_test)<br><br># Output:<br>162/162 [==============================] - 0s 3ms/step - <br>loss: 0.3089 - root_mean_squared_error: 0.5558</pre><p>Burada loss ve metriğin değerini görebilirsiniz. Şimdi test verisinden bir kaç değer alalım ve bu değeri tahmin edelim.</p><pre>X_new = X_test[:3]</pre><p>Şimdi predict metodunu çağırarak bu verileri kurduğumuz modele göre tahmin edelim. Verileri daha iyi görmek için Pandas DataFrame yapısını kullanalım.</p><pre>import pandas as pd<br>y_pred = model.predict(X_new)<br>pd.DataFrame(y_pred)<br><br># Output:<br>0  0.631996<br>1  1.136796<br>2  4.315046</pre><p>Tamam, böylece ilk üç evin fiyatlarını tahmin ettik. Hadi şimdi gerçek değerlere bakalım.</p><pre>pd.DataFrame(y_test[:3])<br><br># Output:<br>0  0.47700<br>1  0.45800<br>2  5.00001</pre><p>Verilerin gerçek etiketleri de bu şekilde. Genel olarak modelimizin tahminleri kötü değil.</p><h3>Son Sözler</h3><p>Bu yazımda, Keras Functional API ile nasıl kompleks sinir ağları kurabileceğinizi anlattım. Bu analizde tek bir girdinin ve tek bir çıktının olduğu bir yapay sinir ağı inşa ettik. Fakat bazı durumlarda birden fazla girdi ve birden fazla çıktı kullanmak isteyebilirsiniz. Böyle durumlarda nasıl derin sinir ağları inşa edeceğinizi öğrenmek için aşağıdaki videoyu izleyebilirsiniz.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FIvpG5om38cw%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DIvpG5om38cw&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FIvpG5om38cw%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/81c12f8c92846df8a7887d4ef55b070e/href">https://medium.com/media/81c12f8c92846df8a7887d4ef55b070e/href</a></iframe><p>Makaleyi okuduğunuz için teşekkür ederim. Umarım faydalı bir makale olmuştur. Bu derste kullandığım notebook’a <a href="https://github.com/TirendazAcademy/Deep-Learning-with-TensorFlow/blob/main/How_to_Use_Keras_Functional_API.ipynb">buradan</a> ulaşabilirsiniz. Sorularınız varsa yorumlara yazabilirsiniz. Bu yazıyı beğendiyseniz aşağıdaki alkış tuşuna basmayı ve arkadaşlarınız ile paylaşmayı unutmayın. Hadi bağlanalım: <a href="https://youtube.com/c/tirendazakademi">YouTube</a> | <a href="https://www.udemy.com/user/tirendaz-akademi-2/">Udemy</a> | <a href="https://twitter.com/TirendazAkademi">Twitter</a> | <a href="https://www.instagram.com/akademitirendaz">Instagram</a> 😊</p><p>Aşağıdaki yazılar da dikkatinizi çekebilir:</p><ul><li><a href="https://tirendazakademi.medium.com/makine-%C3%B6%C4%9Frenmesi-yol-haritas%C4%B1-2023-4418c290fc00">Makine Öğrenmesi Yol Haritası 2023</a></li><li><a href="https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-i%C3%A7in-yapay-sinir-a%C4%9Flar%C4%B1-24edd662dc73">Derin Öğrenme için Yapay Sinir Ağları</a></li></ul><p>Gelecek yazılarda görüşmek üzere. Şimdilik hoşça kalın.</p><h4>Kaynaklar</h4><ul><li><a href="https://homl.info/er3">Hands-on Machine Learning with Scikit-Learn, Keras and TensorFlow</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=112d0da45af7" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Derin Öğrenme için Yapay Sinir Ağları]]></title>
            <link>https://tirendazakademi.medium.com/derin-%C3%B6%C4%9Frenme-i%C3%A7in-yapay-sinir-a%C4%9Flar%C4%B1-24edd662dc73?source=rss-e9566c9f34a3------2</link>
            <guid isPermaLink="false">https://medium.com/p/24edd662dc73</guid>
            <category><![CDATA[veri-bilimi]]></category>
            <category><![CDATA[yapay-zeka]]></category>
            <category><![CDATA[yapay-sinir-ağları]]></category>
            <category><![CDATA[makine-öğrenmesi]]></category>
            <category><![CDATA[derin-öğrenme]]></category>
            <dc:creator><![CDATA[Tirendaz Akademi]]></dc:creator>
            <pubDate>Tue, 21 Feb 2023 10:41:41 GMT</pubDate>
            <atom:updated>2023-03-24T20:21:07.894Z</atom:updated>
            <content:encoded><![CDATA[<h4>Python ile yapay sinir ağları nasıl çalışır?</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gMsTABD4x6lcyV9vJtloHA.jpeg" /><figcaption>Görsel: <a href="https://www.freepik.com/">Freepik</a></figcaption></figure><p>Arkadaşlar doğa her zaman insanlar için ilham kaynağı olmuştur. Örneğin, kuşlardan esinlenerek uçaklar icat edilmiştir. Aynı şekilde beyindeki nöronlardan esinlenerek yapay sinir ağları geliştirilmiştir. Yapay sinir ağları, derin öğrenmenin çekirdeğidir. Size belki garip gelecek ama resim sınıflandırma, öneri sistemleri, dilden dile çeviri gibi kompleks makine öğrenmesi problemleri yapay sinir ağları ile çözülebilmiştir.</p><p>Bu derste derin öğrenmenin temeli olan yapay sinir ağları mimarisini ele alacağız. Hadi bu derste öğreneceğimiz konulara bakalım. Öncelikle yapay sinir ağları nedir öğreneceğiz. Daha sonra perceptron ve multilayer perceptron nedir bakacağız. Ve en son basit bir sinir ağı ile regresyon ve sınıflandırma problemleri nasıl çözülür inceleyeceğiz. Hadi yapay sinir ağları nedir ile başlayalım.</p><h3>Yapay Sinir Ağları</h3><p>Belki şaşıracaksınız ama yapay sinir ağlarının tarihi 1943 yıllarına dayanıyor. Hadi şimdi son yıllarda bu yaklaşımın neden popüler olduğuna bakalım. Bildiğiniz gibi internet ve sosyal medyanın gelişmesi ile üretilen veri miktarı arttı ve büyük veri ortaya çıktı. Bu büyük veri, yapay sinir ağlarının eğitimine olanak sağladı.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/816/1*PMQ1mCG8W_tZ2U8JQUr6GA.png" /><figcaption><a href="https://blog.goodaudience.com/artificial-neural-networks-and-its-contribution-to-machine-learning-a-beginner-s-hand-book-ab7f4e7b230e">Bir Yapay Sinir Ağı</a></figcaption></figure><p>Klasik makine öğrenmesi algoritmaları büyük verileri analiz etmede zorluk çekerken, yapay sinir ağları büyük veriler üzerinde güzel performans gösterdi. Yapay sinir ağlarının popüler olmasının bir sebebi de makinelerin hesaplama gücünün artması. Oyun sektörünün gelişmesi ile GPU’su yüksek güçlü makineler geliştirildi. GPU’lar matematiksel hesaplamaları daha kolay yaptığı için yapay sinir ağları daha hızlı eğitilebildi. Yapay sinir ağlarının son yıllarda patlamasının bir sebebi de CNN, RNN, Transformers gibi harika mimarilerin geliştirilmesi. Ayrıca son zamanlarda geliştirilen TensorFlow ve PyTorch gibi kütüphaneler ile bu mimariler daha kolay eğitilebildi.</p><blockquote>Yapay zekaya ilginiz varsa <a href="https://www.udemy.com/course/tensorflow-ile-derin-ogrenme/?referralCode=E4AF386D5F93F94FEFE6">TensorFlow ve Keras ile derin öğrenme Udemy kursumuzu</a> inceleyebilirsiniz.</blockquote><p>Hadi şimdi yapay sinir ağlarını daha iyi anlamak için biyolojik bir sinir ağına bakalım.</p><h3>Biyolojik Sinir Ağları</h3><p>Aşağıda biyolojik bir sinir ağını görüyorsunuz.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*mAU87Kim9HxRFy3hf2rtBg.png" /><figcaption><a href="https://www.oreilly.com/library/view/hands-on-machine-learning/9781098125967/">Biyolojik Bir Sinir Ağı</a></figcaption></figure><p>Ben biyolog değilim ama hadi genel hatları ile bu nörona bakalım. Bu sinir ağı, Nucleus denen cell body, bir çok branşa ayrılmış dendrite’ler ve uzun bir axon’dan oluşuyor. Dikkat ederseniz axon’un uzunluğu cell body’den çok daha fazla. Axonlar, diğer nöronların dentrite’leri veya cell body’leri ile birleşen bir çok branşa ayrılıyor. Biyolojik nöronlar, axonlar boyunca hareket eden kısa elektriksel gerilimler üretir. Eğer bir nöron yeterli miktar uyarı alırsa, kendi elektriksel gerilimi ateşlenir. Genel olarak biyolojik nöronlar bu yolla çalışır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*XNcKyEWVqKBqUwItC78X3Q.png" /><figcaption><a href="https://www.oreilly.com/library/view/hands-on-machine-learning/9781098125967/">Bir Sinir Ağındaki Nörondaki Çoklu Katmanlar</a></figcaption></figure><p>Bu çalışmayı basit gibi görebilirsiniz ama nöronların birbirleri ile bağlanması ile milyarlarca sinir ağı yönetilebilir. Tamam genel olarak biyolojik sinir ağlarının nasıl çalıştığına baktık. İşte bu biyolojik nöronlardan oluşan sinir ağları taklit edilerek yapay sinir ağları geliştirildi. Hadi şimdi yapay sinir ağlarının en temel birimi olan perceptron ’a bakalım.</p><h3>Perceptron</h3><p>Yapay sinir ağı mimarisini anlamak için öncelikle en basit yapay sinir ağı mimarisi olan perceptron ’u anlamamız gerekir. Bu mimari, 1957 yılında Frank Rosenblatt tarafından geliştirildi.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*6Hjl-Bhw7-g-_mWWHLAv4A.png" /><figcaption><a href="https://www.oreilly.com/library/view/hands-on-machine-learning/9781098125967/">Perceptron Mimarisi</a></figcaption></figure><p>Yukarıda gördünüz gibi, bu mimaride, girdiler ve çıktı sayılardan oluşur ve her bir girdinin bir ağırlığı vardır. Örneğin x1&#39;in ağırlığı w1, x2&#39;nin ağırlığı w2 ve x3&#39;ün ağırlığı w3. Bu ağırlıklanan girdiler öncelikle toplanır daha sonra bir bias eklenir. Bu toplam, bir step fonksiyonundan geçirilir. Bu fonksiyon, örneğin bir işaret fonksiyonu olabilir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/494/1*o9ci3t_4pNID9pDVPZNqdw.png" /><figcaption>İşaret Fonksiyonu</figcaption></figure><p>İşaret fonksiyonu bildiğiniz gibi sıfırdan küçük değerleri -1&#39;e, sıfır değerlerini sıfıra ve sıfırdan büyük değerleri 1&#39;e götürür. Basit bir percetron ’u, lineer bir ikili sınıflandırma için kullanabilirsiniz. Örneğin önce girdilerin lineer bir fonksiyonu hesaplanır, ardından çıkan sonuç bir treshold yani bir eşik değerini geçerse, sonuç pozitif olur. Belirli bir tresholdu geçmezse sonuç negatif olur. Çok basit değil mi? Ama bu basit mantıkla ChatGPT gibi yapay zeka araçları geliştirildi.</p><p>Bu bahsettiğim örnek, threshold logic unit, kısaca TLU denen, tek bir lineer fonksiyondan oluşuyor. Bir perceptron, bir layerda yani katmanda, birden çok birbiri ile bağlantılı lineer fonksiyondan oluşabilir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*zdVSuUJMnW_HQiVcRzevTQ.png" /><figcaption>İki Girdili ve Üç Çıktılı Bir Perceptron</figcaption></figure><p>Yukarıdaki görselde iki tane girdi ve üç tane çıktı var. Girdilerin bulunduğu layer ’a input layer, çıktıları üreten TLU ’ların bulunduğu katmana output layer denir. Dikkat ederseniz girdilerin hepsi bütün nöronlarla bağlantılı. Bu şekildeki bir katmana <em>tam bağlantılı layer</em> ya da <em>dense layer</em> denir.</p><p>Bakın bu perceptron ’un üç farklı çıktısı var. Hatırlarsanız binary yani ikili sınıflandırma da etiket sayısı ikiydi. Burada üç çıktı olduğu için bu sınıflandırma multilabel denen çok etiketli sınıflandırmadır. Tabi bu mimariyi multiclass denen çok sınıflı sınıflandırma için de kullanabilirsiniz.</p><p>Peki bu noktada percetronlar nasıl eğitilir şeklinde bir soru aklınıza gelebilir. Hadi kısaca bu sorunun cevabına bakalım. Perceptronların eğitim mantığını anlarsanız yapay sinir ağlarının çalışma mantığını daha iyi anlarsanız.</p><p>Öncelikle her bir girdiye rasgele bir ağırlık verilerek girdilerin toplamı bulunur ve daha sonra bu toplama bir bias eklenir. Unutmayın, bir nöron diğer bir nöronu sık sık tetiklediğinde, aralarındaki bağlantı daha çok güçlenir. Nöronlardan geçen girdiler bir çıktı üretir. Bu çıktı bir tahmindir. Tahminin ne kadar hata yaptığına bakılır. Daha az hata ile tahmin yapmak için ağırlıklar güncellenir.</p><p>Tamam basitçe perceptron nedir gördük. Perceptron, XOR gibi bazı basit problemleri çözemedi.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*_a5QJSZJpjkF87k21TX6pQ.png" /><figcaption><a href="https://www.oreilly.com/library/view/hands-on-machine-learning/9781098125967/">XOR Problemi ve Çok Katmanlı Perceptron ile Çözümü</a></figcaption></figure><p>Perceptron ’un eksikliklerini ortadan kaldırmak için çok katmanlı multilayer perceptron geliştirildi. Hadi multilayer perceptronlara yakından bakalım.</p><h3>Çok Katmanlı Perceptron</h3><p>Multilayer perceptronlar bir girdi katman, bir gizli katman ve birde çıktı katmanda oluşur. Bu basit bir çok katmanlı perceptrondur.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*sUQoIFOQkYzbv4zQVSLKtQ.png" /><figcaption><a href="https://www.oreilly.com/library/view/hands-on-machine-learning/9781098125967/">Çok Katmanlı Perceptron</a></figcaption></figure><p>Bu yapay sinir ağı mimarisinde, bir gizli katman var. Eğer birden fazla gizli katman olursa buna <em>derin sinir ağı</em> denir. İşte derin öğrenme bu mimariden geliyor.</p><p>Harika değil mi? Derin öğrenmenin temelini gördük. Derin öğrenme, modern yapay zeka mimarilerinin gelişmesi ile popüler oldu.</p><p>Tamam girdiler sinir ağlarından geçiyor ve bir tahmin yapılıyor. Fakat bu tahmin nasıl iyileştirilecek. İşte tam burada backpropagation tekniği ortaya çıktı. Bu teknik ile hata geriye doğru dağıtılarak ağırlıklar güncellenir Ve en iyi tahmin elde edilinceye kadar bu döngü devam ediyor.</p><p>Süper bir yaklaşım değil mi? Hadi backpropagation ile yapay sinir ağlarının nasıl çalıştığına bakalım. Önce <em>batch</em> denilen bir grup veri alınır. Bu batch sayısı örneğin 32 olabilir. Bu veriler eğitim esnasında bir çok kez bütün sinir ağdan geçer. Bu her bir geçişe <em>epoch</em> deniyor. Derin öğrenme derslerinde çok sık kullanacağımız epoch ve batch’in ne demek olduğunu öğrendik.</p><p>Bir batch veri, girdi katmanından sinir ağına girer. Bu girdi katmanından geçen veriler, gizli katmandan geçerken çıktı hesaplanır. Bu çıktılar diğer katmana iletilir. Bu şekilde girdiler bütün katmanlardan geçerek bir sonuç ortaya çıkar. Bu geçişe forward pass yani ileriye doğru geçiş denir. Sinir ağının çıktısı bir tahmindir. Unutmayın her bir katmanlardan geçen sonuçlar saklanır.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F_M_LgQYyKxQ%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D_M_LgQYyKxQ&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F_M_LgQYyKxQ%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/a421a02dad8811dce08e8d38bf7dc069/href">https://medium.com/media/a421a02dad8811dce08e8d38bf7dc069/href</a></iframe><p>Peki hocam niye saklanıyor derseniz. Bunun sebebi tahmin hatasının geriye doğru dağıtılırken ağırlıkların güncellenmesi için.</p><p>Hocam hata nasıl ölçülüyor derseniz. Bunun için loss fonksiyonu kullanılır. Loss fonksiyonu, gerçek değer ile tahmin değerini karşılaştırır ve bir tahmin hatasını bulur. Her bir batch sinir ağından geçer ve bir tahmin hesaplanır. Ve bu tahminin hatası ölçülür. Bu hata geriye doğru girdi katmanına kadar dağıtılır ve ağırlıklar güncellenir. Güncellenen ağırlıklara göre diğer batch tahmin edilir ve yine tahmin hatası hesaplanır. Bu hataya göre ağırlıklar güncellenir. Bu şekilde bütün veriler sinir ağından geçer. Unutmayın başlangıçtaki ağırlıklar rasgele verilir. Diğer türlü yapay sinir ağının eğitimi başarısız olur.</p><p>Tamam böylece yapay sinir ağlarının nasıl çalıştığını gördük. Şu ana kadar yapay sinir ağlarının teoriğini anlattım. Biraz sonra multilayer perceptronlar ile ilgili uygulamalar yapacağız. Bu mimarinin yapısını anlarsanız daha iyi mimariler oluşturabilirsiniz. Fakat bu mimarideki aktivasyon fonksiyonu hakkında biraz daha konuşalım.</p><p>Hatırlayın perceptronlarda kullanılan aktivasyon, step fonksiyonuydu. Multilayer perceptronlarda kullanılan aktivasyon fonksiyonu ise sigmoid, hiperbolik tanjant ya da ReLU olabilir. En çok kullanılan fonksiyon ReLU’dur.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*YzMviXWCVlxbLa2DxfLxVw.png" /><figcaption><a href="https://www.oreilly.com/library/view/hands-on-machine-learning/9781098125967/">Aktivasyon Fonksiyonları</a></figcaption></figure><p>Niye aktivasyon fonksiyonu kullanıyoruz şeklinde bir soru aklınıza gelebilir. Aktivasyon fonksiyonunu kullanmamızın sebebi, mimarimize nonlineerlik kazandırmak istememizdir. Böylece mimarimiz daha esnek olur. Eğer aktivasyon fonksiyonu kullanmazsak kompleks problemleri çözemeyiz.</p><p>Tamam şimdiye kadar sinir ağlarının yapısını ve nasıl çalıştığını öğrendik. Ayrıca backpropagation algoritmasına baktık. Hadi şimdi bir uygulama ile ellerimizi kirletelim. Öncelikle regresyon problemini ele alalım.</p><h3>Yapay Sinir Ağları ile Regresyon</h3><p>Bildiğiniz gibi regresyon probleminde sayısal bir değer tahmin edilir. Dolayısıyla sinir ağımızın çıktısı bir nöron olmalıdır. Eğer çok değişkenli bir regresyon problemimiz olsaydı boyut sayısına göre nöron olurdu. Örneğin, bir resim içindeki bir nesnenin merkezini bulmak için iki boyutlu bir koordinat sistemi tahmin etmemiz gerekir. Dolayısıyla çıktı katmanında iki nöron olması gerekir.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fnyc3ZeFHAVA%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dnyc3ZeFHAVA&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fnyc3ZeFHAVA%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/6e90dd6b86a8c90669cab5d09dee7991/href">https://medium.com/media/6e90dd6b86a8c90669cab5d09dee7991/href</a></iframe><p>Regresyon problemini çözmek için Scikit-Learn içindeki MLPRegressor sınıfını kullanabiliriz. Bu sınıfı kullanarak bir multilayer perceptron modeli kurabiliriz. Bunu göstermek için california housing veri setini kullanalım. Bu veri seti, ev fiyatlarını gösteriyor. Amacımız bir evin özelliklerine göre fiyatı tahmin edecek bir model kurmak.</p><p>Hadi bu veri setini yüklemek için Scikit-Learn içindeki fetch_california_housing fonksiyonunu çağıralım. Öncelikle bu fonksiyonu import edelim.</p><pre>from sklearn.datasets import fetch_california_housing</pre><p>Hadi bu veri setini bir değişkene atayalım. Bu makalede kullandığım notebook’a <a href="https://github.com/TirendazAcademy/DEEP-LEARNING-WITH-TENSORFLOW">buradan</a> ulaşabilirsiniz.</p><pre>housing = fetch_california_housing()</pre><p>Şimdi veri setini eğitim ve test şeklinde parçalayalım. Unutmayın, eğitim verisi ile model kurulur. Test verisi ile model değerlendirilir. Modeli parçalamak için train_test_split fonksiyonunu kullanalım. Öncelikle bu fonksiyonu import edelim.</p><pre>from sklearn.model_selection import train_test_split</pre><p>Şimdi bu fonksiyon ile veri setimizi parçalayalım.</p><pre>X_train_full, X_test, y_train_full, y_test = train_test_split(<br>   # girdi ve çıktı verilerimizi yazalım.<br>   housing.data, housing.target, <br>   # Rasgeleliği sabitlemek için random_state parametresini kullanalım. <br>   random_state=42<br>   # Sizde bu parametreye 42 yazarsanız benim elde ettiğim sonuçları bulursunuz.<br>)</pre><p>Şimdi modelin parametrelerini ayarlamak için validasyon verisini oluşturalım. Bunun için yine train_test_split fonksiyonunu kullanalım.</p><pre>X_train, X_valid, y_train, y_valid = train_test_split(<br>   #eğitim verisini parçalamak için eğitim girdi ve çıktı değişkenlerini yazalım.<br>   X_train_full, y_train_full,<br>   #Yine rasgeleliği sabitlemek için random_state parametresini kullanalım.<br>   random_state=42)</pre><p>Tamam veri setlerimizi oluşturduk. Şimdi modelimizi kuralım. Bunun için MLPRegressor sınıfını import edelim.</p><pre>from sklearn.neural_network import MLPRegressor</pre><p>Bu sınıftan bir örnek alalım.</p><pre>mlp_reg = MLPRegressor(<br># gizli katman sayısını ve her katmandaki nöron sayısını belirleyelim.<br># 3 katman ve her katman da 50 nöron olsun.<br>hidden_layer_sizes=[50, 50, 50], <br>random_state=42)</pre><p>Harika, modelimiz için bir örnek oluşturduk. Veri seti sayısal değerlerden oluşuyor. Bu sayısal değerleri standartlaştıralım. Böylece modelimizi daha doğru ve daha hızlı kurarız. Bunun için StandardScaler sınıfını import edelim. Ölçekleme ve model kurma işlemlerini daha kolay yapmak için pipeline kullanalım.</p><pre>from sklearn.preprocessing import StandardScaler</pre><p>Öncelikle make_pipeline fonksiyonunu import edelim.</p><pre>from sklearn.pipeline import make_pipeline</pre><p>Bu fonksiyon ile bir pipeline inşa edelim.</p><pre>pipeline = make_pipeline(<br>   #Önce ölçekleme fonksiyonunu yazalım.<br>   StandardScaler(), <br>   # Sonra modelimizi yazalım.<br>   mlp_reg)</pre><p>Bu pipeline ile önce veri ölçeklenecek sonra model kurulacak.</p><p>Harika pipeline’ımızı oluşturduk.</p><p>Şimdi fit metodunu çağıralım ve modelimizi eğitelim.</p><pre>pipeline.fit(<br>   # Model eğitimi için eğitim verilerini kullanalım.<br>   X_train, y_train)</pre><p>Tamam modelimizi eğittik. Şimdi bu modelli kullanarak validasyon verilerini tahmin edelim.</p><pre>y_pred = pipeline.predict(<br>   # Validasyon veri setini yazalım.<br>   X_valid)`</pre><p>Tamam validasyon verisini tahmin ettik. Şimdi mean_squared_error fonksiyonu ile bu modelin tahmin hatasını bulalım. Öncelikle bu fonksiyonu import edelim.</p><pre>from sklearn.metrics import mean_squared_error</pre><p>Şimdi bu fonksiyonu kullanarak tahmin hatasını bulalım.</p><pre>rmse = mean_squared_error(<br>   #önce gerçek değerleri yazalım<br>   y_valid,<br>   # şimdi tahmin değerlerini yazalım.<br>   y_pred, squared=False)</pre><p>Modelin hata kareler hatası 0.5 civarı çıktı. Bu değer kötü bir değer değil. Uutmayın veri setinizde aykırı değer çoksa hata metriği olarak ortalama mutlak hata metriğini de kullanabilirsiniz. Biz bu modeli kurarken çıktı katmanında bir aktivasyon fonksiyonu kullanmadık. İsterseniz aktivasyon fonksiyonu olarak ReLU kullanabilirsiniz. Bu problem basit olduğu için sinir ağını oluşturmak için Scikit-Learn kütüphanesini kullandım.</p><p>Gelecek yazımda daha kompleks mimariler için Keras anlatmayı planlıyorum. Hocam burada bir çok hiperparametre var. Bunları nasıl seçeceğiz diyebilirsiniz. Hadi şimdi regresyon için optimum model kurmak için en uygun olabilecek hiperparametrelere bakalım.</p><p>Gizli katman için tabi probleminize bağlı olarak 1&#39;den 5&#39;e kadar katman kullanabilirsiniz. Gizli katman başına nöron sayısı olarak 10&#39;dan 100&#39;e kadar değer yazabilirsiniz. Çıktı katmanındaki nöron sayısını boyut sayısına göre belirleyebilirsiniz. Gizli katmanlarda aktivasyon fonksiyonu olarak, ReLU kullanabilirsiniz. Çıktı katmandaki aktivasyon fonksiyonu olarak ya kullanmazsınız ya da ReLU, sigmoid veya tanh kullanabilirsiniz. Loss fonksiyonu olarak bizim yaptığımız gibi hata kareler ortalaması metriğini kullanabilirsiniz.</p><p>Tamam regresyon için basit bir yapay sinir ağının nasıl kurulacağını gördük.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FlZPP579Vl0U%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlZPP579Vl0U&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FlZPP579Vl0U%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/ed764cf5bcb358c1b0740bf92324d6db/href">https://medium.com/media/ed764cf5bcb358c1b0740bf92324d6db/href</a></iframe><h3>Yapay Sinir Ağları ile Sınıflandırma</h3><p>Multilayer perceptronu sınıflandırma görevleri içinde kullanabilirsiniz. Örneğin, ikili sınıflandırma problemi için, son katmana sigmoid aktivasyon fonksiyonu yazarak, tek bir çıktı için bir nöron ekleyebilirsiniz. Son katmanda sigmoid fonksiyonu kullandığımız için çıktı 0 ile 1 arasında olacak. Belli bir threshold değerinden büyükse pozitif küçükse negatif sınıfı tahmin edecek.</p><p>Multilayer perceptron mimarisini çok kategorili problemler içinde kullanabilirsiniz. Bunun için son katmana sınıf sayısı kadar nöron eklersiniz. Örneğin rakam sınıflandırması için son katmana 10 nöron yerleştirirsiniz. Bakın bu problemde çok etiketli sınıflandırmadan farklı olarak sadece bir sınıf tahmin edilir. Dolayısıyla sınıf başına bir nöron yerleştirildiğinden, aktivasyon fonksiyonu olarak son katmanda softmax kullanılır. Bu fonksiyonun bütün tahminleri 0 ile 1 arasındadır ve bu tahminlerin toplamı birdir.</p><p>Sınıflandırma probleminde multilayer perceptronu kullanmak için MLPClassifier sınıfını kullanabilirsiniz. Bu sınıfı biraz önce gösterdiğim regresyon gibi kullanabilirsiniz.</p><p>Çok kategorili sınıflandırma problemi için model kurarken hadi kullanabileceğiniz hiperparametrelere bakalım. Gizli katman sayısı probleminize göre 1&#39;den 5&#39;e kadar olabilir. Çıktı nöron sayısı için kategori başına bir nöron yazabilirsiniz. Çok etiketli iki sınıflandırma için etiket başına bir ve aktivasyon fonksiyonu olarak sigmoid kullanabilirsiniz. Evet arkadaşlar optimum olabilecek hiperparametreleri de gördük.</p><h3>Sonuç</h3><p>Bu makalede yapay sinir ağlarına giriş yaptık ve bu ağların en basiti olan perceptron ve çok katmanlı perceptron mimarini inceledik. Yapay sinir ağlarının çalışma prensibini gördük. En son bir uygulama yaptık ve regresyon ve sınıflandırma için çok katmanlı perceptronların nasıl kullanılacağına baktık.</p><p>Hadi bağlanalım <a href="https://youtube.com/c/tirendazakademi">YouTube</a> | <a href="https://tirendazakademi.medium.com/">Medium</a> | <a href="https://twitter.com/TirendazAkademi">Twitter</a> | <a href="https://www.instagram.com/akademitirendaz">Instagram</a> | <a href="https://www.tiktok.com/@tirendazakademi">TikTok</a></p><ul><li><a href="https://tirendazakademi.medium.com/makine-%C3%B6%C4%9Frenmesi-yol-haritas%C4%B1-2023-4418c290fc00">Makine Öğrenmesi Yol Haritası 2023</a></li><li><a href="https://tirendazakademi.medium.com/makine-%C3%B6%C4%9Frenmesi-ekosistemi-9acaad4eb92a">Makine Öğrenmesi için Bilmeniz Gereken Kütüphaneler</a></li></ul><p>Gelecek yazılarda görüşmek üzere. Hoşça kalın.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=24edd662dc73" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>