Bir algoritmanın birleşmesi ne anlama gelir?


12

Takviye öğrenimi hakkında okurken bu terimle karşılaşmaya devam ediyorum, örneğin bu cümlede:

Sorun özenle modellenirse, bazı Takviye Öğrenme algoritmaları küresel optimum seviyeye yaklaşabilir

http://reinforcementlearning.ai-depot.com/

Veya burada:

Herhangi bir sabit politika Pi için, yukarıda açıklanan TD algoritmasının VPi'ye yakınsadığı kanıtlanmıştır.

http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node62.html

Yakınsama kelimesini anlamam, birkaç nokta aynı noktaya gelmesi anlamına geliyor, ancak tek bir şey (algoritma) bunu nasıl yapabilir?


7
Yinelemeli algoritmalar söz konusu olduğunda, her bir yineleme için aday çözümlerinin arzu edilen çözüme yaklaştıkça yakınlaştıkları söylenir.
MetaFight

6
Matematikteki bir limitin, bir "limit" "tek bir şey" olmasına rağmen, yakınsama veya ayrılma söylendiği de hatırlanabilir.
Ixrec

@Ixrec: "Limit", con / yöneldiği / yöneldiği değerden sonra adlandırıldı . Örneğin "1'e yaklaşır" demek, "asla 1'in üzerine çıkmaz" demek anlamına gelir. "1, sonuçta elde edilen maksimum değerdir" ve dolayısıyla beklentilerinizin "sınırı" demek. Dolayısıyla tekil.
flater

Yanıtlar:


14

Bir yinelemeli algoritma tekrarlamalar ilerledikçe, çıktı daha yakın ve daha yakın bir belirli bir değere geldiğinde, konverjans söylenir. Daha kesin olarak, ne kadar küçük bir hata aralığı seçerseniz seçin, yeterince uzun süre devam ederseniz, fonksiyon sonuç olarak nihai değer çevresindeki bu hata aralığında kalır.

Bazı durumlarda, her zaman bir miktar değişiklik gösteren bir çıktıya sahip bir algoritma birleşmez. Çıktının daha büyük ve daha büyük değer dalgalanmalarına maruz kalacağı, asla yararlı bir sonuca yaklaşmayacağı bile ayrılabilir. Daha kesin olarak, ne kadar devam ederseniz sürün, fonksiyon değeri hiçbir zaman herhangi bir "son" değer aralığında yerleşmez.

İlk cümlenizdeki "küresel bir optimuma yakınsama" ifadesi, "optimal" değere yakınsamayan, ancak birbirine yakınlaşabilen algoritmalara bir referanstır (örneğin, işleve ve başlangıç ​​koşullarına bağlı olarak, yerel maksimuma, hiçbir zaman global maksimuma ulaşmaz).


3

Genel olarak yakınsama nedir

Yakınsama kavramı iyi tanımlanmış bir matematik terimidir. Esasen, bir dizi öğenin "nihayetinde" tek bir değere yaklaştığı anlamına gelir. Bu tek değere "sınır" diyoruz.

Biçimsel tanım böyle bir şeye gider:

Düşündüğünüz her pozitif hata için , sonra gelen her elementin o hatadan daha az farklı olduğu bir gerçek sayı dizisi verildiğinde (sonsuz) X0, X1, X2, ... Xn ...diyoruz .Xn converges to a given number LXmXnXmL

Misal:

Bir diziyi şöyle düşünün:

  • X0 = 1
  • X1 = 0.1
  • X2 = 0.01
  • X3 = 0.001
  • X4 = 0.0001
  • ...
  • Xn = 1 / (10 ^ n)

Xn sıfıra yakın mı? Evet! Neden?

E hatasını düşünün (örneğin, E = 0.0025). Bundan sonra her elemanın altında olduğu bir eleman var 0.025mı? Evet! Bu unsur X3 = 0.001. X2'den sonra her XNşey aşağıda 0.0025. Bu her E> 0 için yapılabilir mi? Evet. Seçtiğimiz her pozitif hata için, ilk ondalık noktasından önce kaç sıfır olduğunu görebiliriz ve sıra, aynı sayıda sıfır içeren öğeden başlayarak daha düşük olacaktır.

Bu demektir Xn = 1/(10^5) converges to 0. "İstediğimiz kadar" sıfıra yaklaşabilir "gibi.


Bir algoritmanın birleşmesi ne anlama gelir?

"Teknik olarak" birleşen algoritma değil, algoritmanın manipüle ettiği veya yinelediği bir değerdir. Örneğin, PI'nın tüm rakamlarını yazdıran bir algoritma yazdığımızı varsayalım.

Algoritma aşağıdaki gibi sayıları yazdırmaya başlar:

  • X0 = 3.14
  • X1 = 3.141
  • X2 = 3.1415
  • X3 = 3.14159
  • ...

Kendimize şu soruyu sorabiliriz: Algoritma her biri giderek artan oranda PI'ye yakın sayılar yazdırıyor mu? Başka bir deyişle, X0, X1, ... XN ...algoritmamızın yazdırdığı sıra PI'ye yakınsar mı?

Öyleyse, algoritmamızın PI'ya yakınsadığını söylüyoruz.


Genellikle bir algoritmanın doğruluğunu kanıtlamakla ilgileniriz.

Genellikle, bir algoritma yazdığımızda, algoritmanın sağladığı çözümün çözdüğü sorun için doğru olup olmadığını bilmek isteriz. Bu bazen bir yakınsama şeklinde gelebilir.

Genel olarak, algoritmalar metrik dediğimiz şeye sahiptir . Metrik, algoritmanın ürettiği belirli bir sonuca verdiğimiz bir sayıdır. Örneğin, AI / Makine Öğrenimi yinelemeli algoritmalarda, algoritmanın üretime dayalı olarak oluşturduğu "hatayı" takip etmemiz çok yaygındır. Bu hata bir metriktir.

Bu yinelemeli algoritmalarda her adım farklı bir hata oluşturur. Algoritmanın yapmaya çalıştığı şey, hatayı küçülterek küçülmesini sağlamaktır. Hata dizisi yakınsa algoritmanın yakınsadığını söylüyoruz.

Bu durumlarda, global optimumgenellikle mümkün olan en düşük hataya sahip kurulum olarak tanımlanır. Bu durumda, "algoritma genel optimumya yakınsar", "algoritmanın mümkün olan en düşük hataya yaklaşan bir sırada hatalar ürettiği" anlamına gelir.

Eğer "global optimum" bizim "doğru çözümümüz" ise, algoritmamızın yakınlaştığını belirtmek, algoritmamızın doğru olduğunu belirtmekle aynıdır.

Ayrıca, bir algoritmanın birleştiğini belirtmenin bir kanıt gerektirdiğini unutmayın (0.001, 0.0001, ... için yaptığımız gibi).


Örneğin, bir sınıflandırıcı

Bunun bir örneği bir sınıflandırıcı durumunda olabilir. Sayıların tek olup olmadığını veya hatta bir makine öğrenme algoritması kullanıp kullanmadığını ve aşağıdaki veri kümesine sahip olduğumuzu sınıflandırmak istediğimizi varsayalım:

  • (1, tek)
  • (2, çift)
  • (3, tek)
  • (77, tek)
  • (4, çift)

Her sayı kümesi için algoritmamız, çift veya tek ise her biri için tükürür. Bunun için bir metrik hatayı, yanlış yapılan sayının, verilen toplam öğe sayısına bölünmesiyle elde edebiliriz.

Yani, algoritmamız tükürüyorsa:

  • (1, çift) // yanlış
  • (2, çift)
  • (3, çift) // yanlış
  • (77, çift) // yanlış
  • (4, çift)

Hata ölçütümüz olurdu 3/5 = 0.6. Şimdi algoritmayı tekrar çalıştırdığımızı ve şimdi tükürdüğünü varsayalım:

  • (1, çift) // yanlış
  • (2, çift)
  • (3, tek)
  • (77, tek)
  • (4, çift)

Hata ölçütümüz olurdu 1/5 = 0.2.

Diyelim ki daha fazla çalışıyor ve hatalar dizimiz şöyle görünüyor:

0.6, 0.2, 0.1, 0.01, 0.000456, 0.00000543, 0.000000000444 ....

Yani asıl soru şu: Algoritmamız hiç sıfır olacak mı? Hiç sıfıra yaklaşacak mı? Algoritmamız her biri yakınlaşacak mı? Sonunda doğru (veya mümkün olduğunca sağa yakın) olacağını ispatlayabilir miyiz?

Umarım öyle :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.