Thursday, December 31, 2015

Matematik Ders Notlari

Lineer Cebir (Linear Algebra)


Diferansiyel Denklemler (Ordinary Differential Equations)


Çok Değişkenli Calculus (Multivariable Calculus)


Hesapsal Bilim (Computational Science)


İstatistik, Yapay Öğrenim, Veri Analizi (Statistics, Machine Learning, Data Analysis)


Zaman Serileri ve Finans (Time Series and Finance)


Kısmi Diferansiyel Denklemler (Partial Differential Equations)


Fonksiyonel Analiz (Functional Analysis)


Yapay Zeka, Çetrefillik (AI, Computational Complexity)


Gayri Lineer Dinamik ve Kaos (Non-Linear Dynamics and Chaos)


Çoklu Bakış Açı Geometrisi (Multiple View Geometry)


Wednesday, December 30, 2015

Türkçe Karakter Eki

Tüm bilimsel makalelere Türkçe karakter kullanımı eklendi. Değişim için turkish-deasciifier projesini kullandık. Emacs bağlantısı için şuraya bakılabilir.

Yazı bağlantıları

http://sayilarvekuramlar.blogspot.co.uk/2015/12/matematik-ders-notlari.html

Mutlu yeni yıllar

Sunday, December 27, 2015

htlatex ve minted

TeX dosyalarindan HTML uretmek icin 

htlatex dosya.tex

ifadesi kullanilir. Fakat icinde minted paketine referans olan tex dosyalarinda problem cikabilir; "-shell-escape secenegi kullanilmamis" hatasi verilecek, fakat bu secenek eklense bile problem devam ediyor. 

Cozum, 

htlatex dosya.tex "dosya" "" "" -shell-escape

kullanimi, bunun icin ayrica dosya.cfg ayni dizinde olmali, icerigi 

\Preamble{xhtml}
\Configure{HColor}{DarkGray}{\#1A1A1A}
\begin{document}
\EndPreamble

Kaynak


Tuesday, December 1, 2015

Bilgisayar Bilim, Yapay Zeka

PDF (Dropbox, Google)

Matematiksel modelleme, diferansiyel denklemler,
Regresyon
Hesapsal Karmaşıklık Teorisi (Computational Complexity)
Turing makinalari
Sözlükler, Böleç Anahtarları (Hash Keys)
Yığıt (Stacks)
Kuyruk (Queue)
Bağlanmış Listeler (Linked Lists)
İkisel Arama Ağaçları (Binary Search Trees -BST-)
Öncelik Kuyruğu (Priority Queue)
Sıralama (Sorting), Kabarcık Sıralaması (Bubblesort), Hızlı Sıralama (Quicksort)
Dinamik Programlama, Kisayol Bulma
Minimum Kapsamlı Ağaç (Minimum Spanning Tree -MST-)
Dijkstra Algoritması ile En Kısa Yol
Felzenswalb Gruplaması (Felzenswalb Clustering)
Arama (Search), Önce Genişliğine (Breadth First) ve Önce Derinliğine (Depth First) Arama
Yapay Zeka ile İtalyan Daması, Minimax
ID3, Karar Ağacı
En Yakın k-Komşu (k-Nearest Neighbor)
Küre Agaçları (Ball Tree, BT)
Yapay Sinir Ağları (Neural Networks)
Evrişimsel Ağlar, Derin Öğrenim (Convolutional Nets -Convnet-, Deep Learning)
Otomatik Türev Almak (Automatic Differentiation -AD-)
Kendini Tekrarlayan Yapay Sinir Ağları (Recurrent Neural Network -RNN-)
K-Means Kümeleme Metodu
Paralel KMeans, Hadoop
Ortalama Kaydırma ile Kümeleme (Mean Shift Clustering)
Log Lineer Modeller ve Koşulsal Rasgele Alanlar (Log Linear Models and Conditional Random Fields -CRF-)
Oyun Teorisi ile Grup Kararları Tahmini
Kafadan Hesap
Güneşi Kullanarak Dünyadaki Kordinatımızı Bulmak
Doktora Derecesi

PDF

Çok Değişkenli Calculus (Multivariable Calculus)

PDF (Dropbox, Google)

Çizgi Düzlem Kesişmesi
Vektörler, Vektör Toplamı, Birimdiklik
Noktasal Çarpım, Çapraz Çarpımı
Paralelogram
Düzlemler
Determinantlar
Çapraz Çarpım (Cross Product)
Sağ El Kuralı
Düzlem Kesişmeleri
Cycloid (Yuvarlanma Eğrisi)
Parametrik Denklemler
Taylor Serileri
Yaklaşıklamak (Approximation)
İki Boyutlu f(x,y) Fonksiyonunun Taylor Açılımı
Hız, İvme
Kısmi Türevler
Zincirleme Kanunu
Çapraz Çarpım (Cross Product)
Elipsoid
Minimum, Maksimum
Gradyanlar
Kontürlar
Kesit Seviyeleri (Level Sets)
Tam Türevler (Total Derivatıves)
Lagrange Çarpanları (Multipliers)
Hiperbol
Calculus’un Temel Teoremi (The Fundamental Theorem of Calculus)
Ortalama Değer Teoremi
Çift Entegraller (Double İntegrals)
Ağırlıklı Ortalama, Kütle Merkezi (Center of Mass) Hesapları
Değişken Değişimi (Change of Variables)
Vektör Alanları (Vector Fields) ve Çizgi Entegralleri (Line Integrals).
Akış (Flux)
Green’in Teorisi
Curl

Gayrı Lineer Dinamik ve Kaos (Chaos, Non-Linear Dynamics)

PDF (Dropbox, Google)

Öğretmen: Steven Strogatz

Başlangıç anına olan hassas bağlantı
Lorenz
Otonom Sistemler
Çeken (ve İten) Sabit Noktalar
Sarkaç (Pendulum)
Basit harmonik titreşir (simple harmonic oscillatör)
Faz Uzayı, faz portresi
Gidiş yolları (trajectories)
Lojistik büyüme denklemi, taşıma kapasitesi
Sabit bir nokta etrafında lineerleştirmek
Taylor serisi yaklaşıklaması
Lineer diferansiyel denklem
Salınımlar (oscillations), sönümlu (damped) salınım
Çatallaşma (Bifurcation)
Eğer Düğümü Çatallaşması (Saddle Node Bifurcation)
Transkritik Çatallaşma
Hopf çatallaşması
Dönen Halka Üzerinde Aşırı Sonumlu Boncuk (Överdamped Bead on a Rotating Hoop)
Boyutsal Analiz (Dimensional Analysis)
Histeresis (Hysteresis)
Birörnek Titreşir (Üniform Oscillatör)
İki boyutlu sistemler
Homojen lineer sistemler
Sarmallar (Spirals)
Stabilite, gayrı-stabilite
Jacobian
Kutupsal form
Manifoldlar
Zincirleme Kuralı
Muhafazakar sistemler
Kapalı yörüngeler
Merkezler
Hetroklinik yörüngeler
İndis Teorisi
Limit Çevrimleri (Limit Cycles)
Dulac yöntemi
Sarşım teorisi (pertürbatıon theory)
Van der Pol
Zayıf Gayri Lineer Titreşirler İçin Averajlama Teorisi
Enerji
Duffing Denklemi
Periyotsal yörüngeler
Altkritik (subcritical) ve süperkritik (supercritical), tirmik
Durağan eğrileri (nullclines)
Vektör alanı

Hesapsal Bilim (Computational Science)

PDF (Dropbox, Google)

Simetrik matris
Seyreklik (sparsity)
Üçlü köşegen matrisler (tridiagonal)
Toeplitz matrisleri
Matris tersi (inverse)
Birim matris
Determinant
Kütle ve yay sistemi
Sınır şartları (boundary conditions)
Pozitif kesinlik (positive definite)
Geriye doğru farklılık (backward difference) matrisi
Diferansiyel denklem ayrıksal (discrete) çözüm
Birinci Farklılıklar (İleri Doğru, Geriye Doğru, Ortalanmış)
Taylor serileri
Özel (particular) çözüm
KU=F
Birörnek (uniform) çubuk, eşit dağılmış yük
Eliminasyon
Dikgenleştirme
Eşsiz değerler
Delta fonksiyonları
Adım (step) fonksiyonu, Heaviside fonksiyonu
Yokuş (rampa) fonksiyonu
Küpsel spline fonksiyonu
Green’in Fonksiyonu
Özdeğerler ve Özvektörler (Eigenvalues and Eigenvectors)
Köşegenleştirilme (diagonalization)
Özfonksiyon (eigenfunction)
Sıfır uzayı (nullspace)
Pozitif yarı-kesinlik
Özyineli En Az Kareler (Recursive Least Squares)
Sınırlı Öğeler Metodu (Finite Elements Method), Galerkin
Eğri Uydurmak (Curve Fitting)
Spline Eğrileri
Ayrıksal (discrete) olarak Fourier modellemesi, Güneş Benekleri
Gauss Eliminiasyon
Krylov Matrisleri
Eşlenik Gradyan (Conjugate Gradient) Yöntemi
Arnoldi-Lanczos yöntemi
Evrişim (Convolution)
Alçak Geçiren Filtre (Low-Pass Filter)
Yüksek Geçiren Filtre (High-Pass Filter)
Bant Geçiren Filtre (Band-Pass Filter)
Sonlu Dürtü Yanıtlı (Finite Impulse Response -FIR-) Filtreleri
Sonsuz Dürtü Yanıtlı (Infinite Impulse Response -IIR-) Filtreleri
Tepe Noktaları Bulmak (Peak Detection)
Cep Telefonlarında Yürüyüş Yönünü Hesaplamak
Fourier Serileri, Transformu
Frekans Filtrelemek

Fonsiyonel Analiz (Functional Analysis)

PDF (Dropbox, Google)

Reel Analiz (Real Analysis)
Reel Çizgi
Üçgen eşitsizliği (triangle inequality)
Diziler (Sequences)
Yaklaşmak (Convergence)
Augustin Cauchy
Bir Dizinin Limiti
Uzaklaşan (divergent) dizi
Altdizin
Tekdüze (Monotonic) Altdizin Varlığı Teorisi
Bolzano-Weierstrass Teorisi
Sınırlı (bounded) dizi
Limitlerin Sınırlı Olmaları Özelliği
Yakınsak (convergent) dizi
Cauchy Kriteri
Pürüzsüz (smooth) fonksiyon
Süreklilik
Eşit Süreklilik (Uniform Continuity)
Lipschitz Sürekliliği
Tamlık (Completeness)
Inf ve Sup
Vektör uzayları
Alt Uzaylar (Subspaces), Lineer Kombinasyonlar, ve Lineer Çeşitler (Linear Varieties)
Dışbükeylik (Convexity) ve Koniler (Cones)
Norm Edilmiş Lineer Uzaylar
Fonksiyoneller
Hilbert Uzayları
Ön-Hilbert Uzayları (Pre-Hilbert Spaces)
Cauchy-Schwarz Eşitsizliği
Lineer Programlama ve Simplex
Karesel Programlama (Quadratic Programming -QP-)
Destek Vektor Makinaları (Support Vector Machines)
Dayanaklı Kayıp Fonksiyonu ile SVM, Pegasos

Lineer Cebir

PDF (Dropbox, Google)

Öğretmen: Gilbert Strang, MIT OCW dersleri baz alınarak hazırlanmıştır.

Lineer Denklem Sistemleri
Düzlemler (Planes)
Matrisi Devriği (Transpose)
Satır, Kolon Bakışı
Bağımsızlık (Independence)
Eşsizlik (Singularity)
Noktasal Çarpım
Determinantlar
Gauss Eliminasyon Metotu ile Denklem Çözmek, Pivotlar
Permutasyon Matrisleri
Eklemlenmiş Matrisler (Augmented Matrix)
Matris Tersi (Inverse)
Değerleri Geriye Sokarak Çözüm (Backsubstitution)
Kolon Uzayı, Satır Uzayı, Sıfır Uzayı
A=LU
Altuzaylar (Subspaces)
Kerte (Rank)
Çizitler
Dikgenlik (Orthogonality), QR
Yansıtma (Projection)
Lineer Regresyon, En Az Kareler (Least Squares)
Özdeğerler, Özvektörler (Eigenvalues, Eigenvectors)
Üstel Metot (Power Method)
Eşsiz Değer Ayrıştırma (Singular Value Decomposition -SVD-)
Lineer Cebir ile Minimizasyon
PCA
SVD ile Toplu Tavsiye (Collaborative Filtering)
Doküman İndekslemek, Aramak, TF-IDF
Matris Türevleri

Diferansiyel Denklemler

PDF (Dropbox, Google)

Öğretmen: Arthur Mattuck, MIT OCW dersleri baz alınmıştır.

Normal diferansiyel denklemler (ordinary differential equtions -ODE-)
Standart form
Değişkenleri ayırma (seperation of variables)
Yön Alanları (Direction Field)
Entegral Eğrileri (Integral Curves)
Sonuşurluk (asymptotics)
Mevcudiyet ve özgünlük kanunu (existence and uniquiness theorem)
Vektör akış diyagramı
Türev
Euler metodu
Geliştirilmiş (Improved) Euler, Değiştirilmiş (Modified) Euler, Runga-Kutta
Birinci Derece Lineer ODE, Homojen
Konsantrasyon modelleri, akışkanlık (conductivity)
Yayılma (diffusion) modeli
Entegre edici faktör (integrating factor)
Newton’un Soğuma Kanunu
Sabitleri toparlama (lumping)
Bernoulli Denklemi
Tersine Çevirme Tekniği
İzoklinler (isoclines)
Kritik Noktalar
Lojistik Denklem, Nüfus
Hasatla Eksiltilen Lojistik Denklemi
Kısmı kesirler (partial fractions)
Kompleks değişkenler (Complex Variables)
Kompleks eşleniği (complex conjugate)
Modülüs
Kompleks Kökler
Euler Eşitliği
McLaurin serisi
Karışım Problemi
Sabit Katsayılı (Coefficients) Lineer 2. Seviye ODE’ler
Newton Kanunu, ivme, ikinci türev,  kütle
Hooke Kanunu
Kritik sönümlü (critically damped), yetersiz sönüm (underdamped) durumları
Salınımlar (oscillations)
Bağımsızlık, özel (particular) çözüm,
Karakteristik denklem
Üstel (exponential) fonksiyonlar
Yerine geçirme (substitution)
Polinom operatör
Üstel Girdi Teorisi
Üstel Cevap Formülü (Exponential Response Formülü -ERF-)
Kompleksleştirme
Fourier Transformu
Laplace Transformu, Laplace transform tersi (inverse Laplace Transform)
L’Hospital’ın Kuralı
Jacobian
Birim adımlar
Taşıma (translation) ve Laplace
Dürtü
Seriler
Güç serisi (power series)
Türev Alırken Bölüm Kuralı (Quotient Rule)
Bazı e, Log Özellikleri
Polinom Bölmek
Limitler
Bir Limit Olarak e
Cauchy Ortalama Değer Teorisi (Cauchy Mean-value Theorem)
Ters Trigonometrik Formüller (Inverse Trigonometric Functions)
İçiçe Fonksiyonlar (Composite Functions)
Zincirleme Kanunu (İçiçe Fonksiyonlar İçin)
Parçalı Entegral (Integration by Parts)
z Transform
Eşsizlikler (Singularities)
dy/dx bir kesir olarak görülebilir mi?
Evrişim (Convolution)
Temel Fizik, İvme, Hız, Yerçekimi

PDF

Kismi Diferansiyel Denklemler (Partial Differential Equations -PDE-)

PDF (Dropbox, Google)

Normal diferansiyel denklemler (ordinary differential equtions -ODE-)
Bağımsız değişkenler, bağımlı değişkenler
Sınır koşulları (boundary condition)
Başlangıç koşulları (initial conditions)
Homojen, homojen olmayan (inhomogeneous)
Lineer operatör
Gayrı lineerlik
Dalga denklemi
Hilbert Uzayı
Baz fonksiyonlar
Klasik Burger denklemi
Isı denklemi
Yayılma (diffusion) denklemi
Laplace denklemi
Taşınım (convection)
Karakteristik Eğriler Metodu
Yön alanı (direction field)
Zincirleme Kanunu
Dalga Denklemi Başlangıç Değer Problemi (Initial Value Problem)
Analitik PDE
Gauss’un Teorisi
Birim normaller
Div operatorü
Crank-Nicholson
Dirichlet sınır şartı
Isı Denklemini Türetmek
Kesit Seviyeleri, Kenar Bazlı İmaj Gruplamak
Piksel Takibi, Optik Akış, Lucas Kanade Algoritması
Eğim (Curvature)
Dalga Denklemini Türetmek
Newton Kanunu

İstatistik ve Veri Analizi

PDF (Dropbox, Google)

Normal Dağılım
Yoğunluk fonksiyonu
Örneklem Uzayı (Sample Space)
Olasılık
Sonuçlar ve Olaylar (Outcomes and Events)
Rasgele Değişkenler (Random Variables)
Toplamsal Dağılım Fonksiyonu (Cumulative Distribution Function -CDF-)
Histogram
Medyan
Ortalama
Bernoulli, Binom, Birörnek, Multinom, Poisson, Normal (Gaussian) Dağılımı
Gamma
Kısmi (Marginal) Dağılımlar
Bağımsızlık, birleşik (joint) dağılım
Kovaryans
z-Skorları
Kumulatif fonksiyonlar
Örneklem (Sample)
Büyük Sayılar Kanunu
Merkezi Limit Teorisi
Evrişim operasyonu (convolution)
Beklenti (Expectation), Varyans, Kovaryans ve Korelasyon
Bayes Formülu
Beklentileri Koşullayarak Hesaplamak
Koşulsal Olasılık ve Koşulsal Beklenti (Conditional Probability, Conditional Expectation)
Parametre Tahmin Ediciler (Estimators)
Maksimum olurluk (maximum likelihood)
Örneklem Dağılımları (Sampling Distributions)
Binom İçin Normal Yaklaşıksallığı
Istatistiki testler, F-Test, t-test, chi-kare test,
Eşlemeli t-Test (Paired t-test)
Wilcoxon işaretli-sıralı testi (Wilcoxon signed-rank test)
Lineer Regresyon
Model Karşılaştırmak, AIC
F(X) = U
Simulasyon
Herhangi Bir Dağılım İçin Rasgele Sayı Üretmek
Uyum Derecesi ve Düzgünlük Testi (Goodness-of-Fit, Smooth Test)
Üstel Kanunlar (Power Laws)
Tahmin Aralıkları (Prediction Interval)
Rasgele Gradyan Çıkışı (Stochastic Gradient Ascent)
Logit
Sayım, Poisson ve Negatif Binom Bazlı Genel Lineer Modelleri (GLM)
Negatif Binom Modelleri
Çok Seviyeli Modeller (Multilevel Models)
Algılayıcı Birleştirimi, Füzyonu (Sensor Fusion), Gaussian Algılayıcı Füzyonu (Gaussian Sensor Fusion)
Monte Carlo, Entegraller, MCMC
Metropolis-Hastings
Gibbs Örneklemesi
Değişim Noktası Analizi (Changepoint Analysis)
Bayes ve MCMC
Çok Değişkenli Bernoulli Karışımı (Mixture of Multivariate Bernoulli)
Gaussian Karışım Modeli (GMM) ile Kümelemek
Birden Fazla Düz Çizgi Regresyonu, Çizgi Karışım Modeli (Line Mixture Model -LMM-)
Beklenti-Maksimizasyon (Expectation-Maximization -EM-)
Regresyon, Ridge, Lasso, Çapraz Sağlama, Regülarize Etmek
Medyan ve Yüzdelikler (Percentile)
Pandas, Pivotlama
İlişkisel Madencilik (Association Mining)
İkisel Matris Ayrıştırması (Binary Matrix Factorization)
Çok Değişkenli Bernoulli Karışımı Kümelemesi ile İlişkisel Madencilik
Dünya Kupası 2014 Tahminleri
Eşle-İndirge Mimarisi (Map/Reduce -MR- Architecture), Hadoop
Çok Boyutlu Regresyon ile Tavsiye
Naive Bayes
Kalıcı CD (Persistent Contrastive Divergence -PCD-)
Boltzman Makinaları (Rasgele Hopfield Ağları)
Kısıtlı Boltzmann Makinaları (Restricted Boltzmann Machines -RBM-)
CD Yöntemi (Contrastive Divergence)
Çebişev Eşitsizliği
Çok Değişkenli Normal Numaraları (Multivariate Normal Tricks)

Zaman Serileri ve Finans

PDF (Dropbox, Google)

Ağırlıklı ortalama
Histogram, frekans, Gaussian, yüzdelikler
Yamukluk
Oynaklık (Volatility), Artışların, düşüşler
Borsa, tahviller
Sharpe Oranı (Sharpe Ratio)
Standart sapma
Geriye dönük testler (Backtesting)
Risk
İstatistiki önemlilik
Düşüş Kalıcılığı (Drawdown)
Kumulatif getiri
Momentum stratejileri
Bollinger Bantları
Alım, satım sinyali
Vadeli İşlem Sözleşmeleri (Futures)
Rasgele Yürüyüş (Random Walk)
Bağımlılık
Durağanlık (Stationarity)
Kendisiyle korelasyon (autocorrelation)
Rasgele (stochastic) süreç
Rasgele Entegraller (Stochastic Integrals)
Rasgele Diferansiyel Denklemler (Stochastic Differential Equations -SDE-)
Ornstein-Uhlenbeck formülü
Zaman Yarılaması (half-life)
ARIMA, ARCH, GARCH, Periyotlar
Basit Yürüyen Ortalama
Güneş benekleri (sunspots) periyotları
Durağanlık ve Testler
Varyans Oranı (Variance Ratio)
Hurst Üsteli (Hurst Exponent)
Koentegrasyon (Cointegration)
Ortalamaya dönüş (mean-reversion)
Koentegrasyson ve Korelasyon
Ortalamaya Dönüş ile İşlem
Kalman Filtreleri ile Dinamik Lineer Regresyon
Arbitraj
Rasgele Yürüyüş Testleri
Küresel Isınma Var mı?
LİBOR
Eurodollar
Fiyat serisi birleştirmek (stitching), Panama yöntemi
Likidite
Döviz Kuru Ticareti
Şirket Kar Açıklamaları
Üstel Yürüyen Ortalama (EWMA) ile Momentum
Portföy İdaresi
Çeşitlendirmenin (diversification)
Verimli Sınır (Efficient Frontier)
Bootstrap
Kelly Kriteri
Tam Kelly, Yarım Kelly
Risk ve Oynaklık Hedeflemesi
Strateji Ağırlıklarını Hesaplamak (Forecast Weight Estimation)
Oynaklık Standardizasyonu
Saklı Markov Modelleri (Hidden Markov Models -HMM-), Viterbi Algoritması
Ses Tanımak (Voice Recognition)
Parçacık Filtreleri (Particle Filters)
Faiz
Balonlar Ne Zaman Patlar? Sornette
Gayri Lineer Regresyon, Petrol Tepe Noktası (Peak Oil)
Sinüssel Regresyon (Sinusoidal Regression)
Log Veri Analizi
Getiri Eğrisi (Yield Curve)
Zaman Serisinden Trend Çıkartmak (Detrending)
Taylor Kuralı (Taylor Rule)
Sigma Bazli Kalman Filtreleri (Unscented Kalman Filters -UKF-)
Üstel Ağırlıklı Yürüyen Ortalama (Exponentially Weighted Moving Average)

Yapay Görüş ve Robotik (Computer Vision)

PDF (Dropbox, Google)

Öğretmen: Daniel Cremers

Geri-Yansıtmayla 3D Işın Hesabı (Back-projecting a 3D Ray), ve Düzlem Mesafesi
İki İmaj Kullanarak 3 Boyutta Tekrar Oluşturmak (3D Reconstruction from Two Images)
İki Boyut Nokta Eşleşmesi, Homografi, Video Stabilizasyonu
Yol Bulmak (Road Detection)
Birleşme Noktaları, Çizgiler, Hiperdüzlemler (Vanishing Points, Lines, Hyperplanes)
Hareketten Yapı Oluşturmak (Structure from Motion -SfM-)
SURF, SIFT
Lineer Cebir, Uzaylar, Bazlar, Kerte (Rank), Menzil
Baz transformasyonu
Norm
Manhattan mesafesi
Doğal Baz
Dikgenlik
Kronecker Çarpımı
Gruplar
İlgin Transformasyon (Affine Transformation)
Yerini değiştirme (translation), döndürmek (rotation)
Öklitsel Grup (Euclidian Group)
Sylvester’in eşitsizliği
Eksi Bakışımlı Matrisler (Skew-symmetric Matrices)
Çapraz Çarpım (cross-product)
Sağ el kuralı
Rodriguez formülü
Genelleştirilmiş Ters (Generalized -Moore Penrose- Inverse)
SVD ile En Az Kareler (Least Squares)
3D’de Yeniden Oluşturmak (3D Reconstruction)
Rönesans
Perspektif izdüşüm
Çoklu Bakış Açıdan Tekrar Oluşturma (Multiview Reconstruction)
Aynı anda yer belirlemek ve haritalamak (simultaneous localization and mapping, SLAM)
Lie grubu, Lie cebiri
Kutupsal özdeşlik (polarization identity)
Katı gövde transformasyonu
Kamera hareketi
Homojen kordinatlar
Perspektif yansıtma
Iğne deliği kamera (pinhole camera) modeli
Mercekler, odak
Perspektif transformasyonu
odak uzaklığı (focal length)
Kamera kalibrasyonu
İç parametre matrisi (intrinsic parameter matrix), dış parametre matrisi (extrinsic parameter matrix)
Yansıtma Matrisini Bilinen 3D-2D Eşlemelerinden Hesaplamak
8-Nokta Algoritması
Renk, Bolgeler ve Doku (Texture)
Gradyan İnişi ve Model Uydurmak, İmaj İşlemek
GPS, Kullanıcı Yerini Bulmak, GPS Uydularına Olan Açı, Uzaklık

Wednesday, October 28, 2015

Histogram Numaralari

Matplotlib kutuphanesinin histogram hist cagrisinin histogram grafigini basmak haricinde bazi ek ozellikleri var. Mesela bir verinin histograminin kutu (bins) noktalarinin nerede oldugunu raporlattirabiliriz, ayrica bu kutularin  icine ne kadar veri dustugunu, sayi ya da normalize edilmis sayi olarak gorebiliriz. Normalize edilmis sayi ozellikle onemli cunku bu sayi, olasiliksal baglamda, bir tur sayisal yogunluk fonksiyonu (density function) olarak gorulebilir.

Ornek

1,2,3,..,40 sayilarini iceren bir vektor uzerinden,

hst = plt.hist(range(40), bins=3)
print hst[1]
print hst[0]

[  0.  13.  26.  39.]
[ 13.  13.  14.]

Sonuclardan birincisi her kutunun sinir noktalarini veriyor. 3 kutu olustur dedik (bins=3 ile) ve mesela 1. kutu 0 ile 13 arasinda olusmus, sonraki 23-26, vs. Kutular icinde  sirasiyla 13,13 ve 14 tane deger var. 

Eger kutu icindeki sayilari olasiliksal yogunluk degeri gibi gormek isteseydik, normed=True parametresini vermek lazim, 

hst = plt.hist(range(40), normed=True,bins=3)
print hst[0]

[ 0.025       0.025       0.02692308]

Yogunluklar birbirine cok yakin tabii ki cunku verimiz 1-40 arasi sayilar. Dagilimi daha degisik olan bir veri uzerinde farkli sayilar gorurduk. Mesela orta noktasi 10, standart sapmasi 0.1 olan normal (gaussian) dagilmis / uretilmis sayilar uzerinden, 

data = np.random.normal(mu,sigma,40)
hst = plt.hist(data, normed=True,bins=3)
print hst[0]
print hst[1]

[ 1.996045    4.19169449  1.7964405 ]
[  9.79075557   9.91600325  10.04125093  10.1664986 ]

Orta noktada cok daha fazla yogunluk oldugunu goruyoruz, bu normal tabii cunku dagilim da normal (!). Not: yogunluk fonksiyonu 1'den buyuk degerler dondurebilir (ama kumulatif yogunluk donduremez). 

Monday, October 12, 2015

ffmpeg, avconv

Bazi ffmpeg komutlari (buraya ekler olacak)

Format degisimi (ornekte mp4'den avi), video'nun bir kismini cekip cikartmak, mesela 100. saniyeden baslayarak 20 saniyelik kisim,

ffmpeg -i vid1.mp4 -ss 100 -t 20 -acodec copy -vcodec copy vid2.avi

Video'yu numarali JPG imaj dosyalari haline getirmek

ffmpeg -i vid.avi -vcodec mjpeg %05d.jpg

Ses ve goruntu dosyalarini islemek icin ffmpeg kullananlar icin Ubuntu 14'da surpriz: ffmpeg programi apt-get ile kurulamiyor. Dolambacli yollardan kurmak mumkun fakat yeni one surulen program avconv. Kurmak icin

sudo apt-get install libav-tools

Bir ses dosyasinin belli zaman araliklarindaki kismini cikartmak icin

avconv -i dosya.mp3 -ss 0:0:6 -t 0:0:8 -acodec copy parca.mp3

Bu komut dosyanin 6. saniyesinden baslayakara 8 saniyelik bir kismi cikartiyor. 

Diger bazli ffmpeg komutlari.. Mesela bir gorutuyu  cevirmek icin

ffmpeg.exe -i dosya.mp4 -vf "transpose=2" sonuc.mp4

transpose parametresine verilen degerlerin anlami var, 1 saat yonu, 2 saat yonu tersi.

Video ufaltmak icin

ffmpeg -i dosya.mp4 -vf scale=320:240 sonuc.mp4

Ya da

ffmpeg -i dosya.mp4 -filter:v scale=640:-1 -c:a copy sonuc.mp4

Genisligi 640 yap, geri kalan her seyi ona gore ayarla dedik.

Video birlestirmek icin bir ara formattan gecmek lazim.

ffmpeg -i dosya1.mp4 -q:v 1 -filter:v scale=500:-1 -f mpegts dosya1.ts
ffmpeg -i dosya2.mp4 -q:v 1 -filter:v scale=500:-1 -f mpegts dosya2.ts
..

Sonra birlestirmek icin

ffmpeg -i "concat:dosya1.ts|dosya2.ts|..."  -c copy sonuc.mp4

Eger Windows'da bir mp4 cikmiyorsa, bir cevrim sekli de soyle,

ffmpeg -i dosya.mp4 -r 30  -codec:v mpeg4 -flags:v +qscale -global_quality:v 0 -codec:a libmp3lame dosya.avi 

Saturday, September 19, 2015

Algorithmic Trading Kitabi, Python

Unlu sayisal borsacilardan Dr. Ernie Chan'in kitabi Algorithmic Trading kitabinin Matlab bazli kodlarinin bir kismini Python'a cevirdik. Matlab ticari bir urundur, Python ve yan kutuphaneleri acik yazilimdir. Hocaya haber verdik kendisi de blog'unda bahsetti (su yazinin altinda)

Github


Ayrica simdiye kadar tercume edilen bazi zaman serisi, finans notlari surada.

Thursday, June 25, 2015

Komut Satirindan Haber Basliklari

Haberler, ozellikle "en son ne oldu" seviyesinde aranan haberler nihayetinde metin bazli bilgiler - komut satirindan Ubuntu uzerinden bu haberleri almak icin newsbeuter var.

apt-get install newsbeuter

Ardindan $HOME/.newsbeuter/urls 

dosyasi icinde RSS haber vericiler eklenir, mesela

http://www.ft.com/rss/world
http://www.theguardian.com/world/rss
http://news.google.co.uk/news?pz=1&cf=all&ned=uk&hl=en&output=rss
http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xml
http://feeds.reuters.com/reuters/topNews
http://www.huffingtonpost.com/feeds/verticals/world/index.xml
http://www.spiegel.de/international/index.rss


Program newsbeuter ile baslatilir. Oklar ile kaynak uzerine gidilir, R ile kaynagin haber icerigi guncellenir, Enter ile kaynaga bakilir. Bazi renk ve dis tarayici ayarlamak icin ./newsbeuter/config icinde

color background   default   default
color listnormal   default   default
color listfocus    black     yellow
color info         default   black
color article      default   default

# highlights
highlight article "^(Title):.*$" blue default
highlight article "https?://[^ ]+" red default
highlight article "\\[image\\ [0-9]+\\]" green default
browser "w3m %u"


Bazi anahtar kelimelere gore haber filtrelemek istenirse, mesela basliginda ve icinde Turkey kelimesi gecen tum haberler,

ignore-article "*" "content =~ \"Turkey\""
ignore-mode "download"
ignore-article "*" "title =~ \"Turkey\""
ignore-mode "download"

Eger sudo apt-get install w3m ile dis tarayici olarak w3m kurarsaniz, bir haberi okurken "o" tusuna basinca metin bazli olarak bu haber gosterilecektir. Eger konsol programinizda renkler hala rahatsiz ediyorsa, menuden

Edit | Profile Preferences | Colors | Built-in schemes | Linux Console 

seciniz.

Wednesday, April 29, 2015

Vagrant

Linux ya da MacOS uzerinde bir sanal OS isletmek icin Vagrant.

vagrantup.com

https://www.virtualbox.org/wiki/Linux_Downloads

sudo dpkg -i ile once virtualbox sonra vagrant deb dosyalari kurulur. OSX icin dmg dosyalari ile kurulus yapilir. Ek olarak, eger X uygulamalari isletmek gerekirse (yani sanal OS uzerinde X uygulamasi isletip sonucu esas OS icinde gormek) OSX ortaminda XQuartz kurmak lazim,

http://xquartz.macosforge.org/landing

Simdi

vagrant init ubuntu/trusty64

vagrant up

Bu islem, ilk seferde, uzun zaman alir, tum Ubuntu 14.04'u temsil eden kurulus dosyasi Internet'ten indiriliyor olacak. Diger OS cesitleri Vagrant sitesinden bulunabilir.

Bittikten sonra ustteki komutlar ardindan dizin icinde bir Vagrantfile olur. X icin Vagrantfile icine (end ibaresi oncesi)

config.ssh.forward_x11=true

eklenmeli.  Simdi

vagrant ssh

ile sanal "makinamiza" baglanabiliriz (sonraki isletimlerde yine vagrant ssh oncesi vagrant up yapmak lazim fakat ikinci sefer up cagrisi hemen geri gelir). Giris yaptiktan sonra bu makina icinde apt-get vs gibi her turlu Ubuntu komutunun mevcut oldugu gorulebilir. Sanal makinanin Internet baglantisi "disarida" olan makinanin Internet baglantisidir.


X uygulamalari icin, mesela xclock icin,

ssh -X -p 2222 vagrant@localhost xclock

Sifre (ilk basta) vagrant. Not: Eger xclock uygulamasi yok ise sanal Ubuntu uzerinde apt-get install x11-utils isletilir.

Dis (host) makinanin dosyalarina erismek icin sanal makina icinde /vagrant/ dizinini kullanabilirsiniz. Bu dizin bizi icinde Vagrantfile olan dizine goturecektir. 

Friday, April 24, 2015

Anaconda, Python 3

Anaconda Continum sirketinin one surdugu yeni python paket sistemi. Mevcut Python paket sisteminin ciddi kullanicilari bu sistemlerin bagimliliklari takip etmekte basarili olamadigindan yakinip dururlardi (cok uc nokta ihtiyaclardan bahsediyoruz tabii, bizim simdiye kadar sikayetimiz olmadi); Anaconda bu problemlere cevap olarak kurgulanmis. Zaten Continuum Enthought sirketinden cikti, Enthought sirketi de sayisal Python baglaminda liderlerden biriydi (Numpy'i yazan kisi Travis Oliphant Enthought ve simdi Contiuum kurucusu mesela).

Anaconda su anda Windows uzerinde dogru durust veri analiz Python paketlerini kurabilmek icin neredeyse tek cozum.

Neyse; Anaconda'nin degisik bazi ozellikleri var, mesela bir python isler programi kendi $HOME dizininiz altinda kurulacak ($HOME/anaconda/bin/python) ve artik olagan Python yorumcunuz bu olacak (cunku $PATH'inizde bu dizin en one eklenecek) ve tum Python paketleri de sizin kendi ev dizininize gidecek, $HOME/anaconda/lib/python2.7 altinda..

Bu sebeple artik Python paket kuruluslari icin sudo kullanimina gerek kalmiyor, kisisel kullanim icin conda install yeterli.

Ayrica pip ile paket kurmak isterseniz, Conda'nin pip'i ile bu isi yapmaniz lazim, yani $HOME/anaconda/bin/pip ile. Ayni sekilde, sudo pip degil pip.

Kurmak icin

http://continuum.io/downloads

linux 64 bit installer diyen sh dosyasini indir

bash Anaconda-2.2.0-Linux-x86.sh

Python 3 icin

conda create -n py3k python=3

Artik source activate py3k ile Python 3 ortamina girilebilir ve python script.py ile Python 3 script'leri isletilebilir. Bir diger secenek,  ki bunun icin source yapmaya gerek yok, [HOME]/anaconda/envs/py3k/bin/python ile direk Python 3 yorumlayicisini cagirmak.

PYMACS ICIN ONEMLI NOT

Eger Emacs icinden Pymacs kullaniyorsaniz dikkat,  Pymacs /usr/bin/python kullaniyor, bunu pymacs.el icinde degistirebilirsiniz, 623. satirda

pymacs-python-command


yerine

[HOME DIZIN]/anaconda/bin/python


kullanin ve python setup.py build; python setup.py install.

Thursday, April 23, 2015

Ubuntu 14


sudo apt-get install gnome-shell gnome-session-fallback xkbset git ubuntu-restricted-extras compiz compizconfig-settings-manager texlive vlc default-jdk transmission  imagemagick mplayer compiz-plugins emacs auctex gksu dvipng texlive-fonts-extra calibre djvulibre-bin recoll pdftk gimp x11-utils r-base-core

sudo apt-get remove rhythmbox

Pencere Gecisi

Applications | System Tools | Preferences | CompwizConfig Settings Manager

Soldaki Windows bolumundeni "Static Application Switcher"'i secin, boylece Alt-Tab ile pencere gecisi yapilabilir. Eger Next window (All Windows) icin Alt-Tab demiyorsa, tus kombinasyonunu gosteren dugmeye basin, ve oradan "Grab key combination" dugmesine basin, ve Alt-Tab tuslarina basin, boylece bu tus kombinasyonu kaydedilmis olur.

Tuslar Ile Mouse Tiklamasi

Bizim Github kod deposunde remap_mouse.sh'e cagri yap, /etc/profile icinden, boylece bazi tuslar mouse tiklamasi haline gelir.

Caps Control Yapmak

.bashrc icinde

setxkbmap -option ctrl:nocaps

Bazi tuslari sol ve sag fare tiklamasi yapmak icin

xmodmap -e "keycode 133 = Pointer_Button1"
xmodmap -e "keycode 108 = Pointer_Button1"
xmodmap -e "keycode 135 = Pointer_Button3"
xkbset m


ustteki iki blok kodu bir sh dosyasi icine yazip .bashrc icinden de cagirabilirsiniz. Eger farkli tuslar kullanmak istenilirse xev ile bu tuslarin kodlari ogrenilebilir.

Firefox

Zoom Page eklentisi, default zoom 120 yap.

Ses Efektleri

Eger konsol icine mesela gidilemeyecek durumda bile backspace yapilinca cikan bip, tan, tun seslerini kapatmak istiyorsak System Tools | System Settings, oradan Sound ve Sound Effects. Bir ses kontrol ayari var, onun yaninda Mute secilirse artik uyarici sesleri cikmaz.

Baslangic Davul Sesini Yokedin

sudo rm /usr/share/sounds/ubuntu/stereo/system-ready.ogg

Balon tavsiyelerini yoketmek icin

sudo mv /usr/share/dbus-1/services/org.freedesktop.Notifications.service /usr/share/dbus-1/services/org.freedesktop.Notifications.service.disabled 

Uyuma (sleep) ve tekrar geri gelme sonrasi (resume) eger Wifi / network baglanmiyorsa,

sudo touch /etc/pm/sleep.d/wakenet.sh
sudo chmod +x /etc/pm/sleep.d/wakenet.sh
sudo gedit -H /etc/pm/sleep.d/wakenet.sh


Dosya icine

#!/bin/bash
case "$1" in
thaw|resume)
nmcli nm sleep false
;;
*)
;;
esac
exit $?


Sag ust kosedeki kisayollar

Eger gnome panelden ikon silmek istiyorsak, Alt Super + sag mouse tiklamasi yapilir ve "Remove from Panel" secilir. Ya da $HOME/.config/gnome-panel altinda ikona tekabul eden dosya silinir.

Hata Mesajlari

Bir sistem hatasi ciktiginda surekli "sorry ubuntu has experienced internal error ..." gibi bir diyalog kutusu ekrana geliyor. Bunu iptal etmek icin sudo gedit /etc/default/apport ile ayar dosyasina girin ve enabled=0 haline getirin, bilgisayari tekrar baslatin.

Yaziya ekler olacak

Tuesday, March 24, 2015

Adium

Mesajlasma (chat) icin guzel bir arac - Adium. Facebook, Google Talk gibi chat sistemlerine baglanabiliyor. Indirme adresi adium.im, eger Google Talk secilirse, [kullanici]@gmail.com adresi vermek gerekli.

Ilginc bazi ozellikler sifreli (encrypted) mesajlasmaya izin vermesi. Bir kisi ile mesajlasirken kilit ikonuna tiklayinca ilk sefer icin anahtarlar degis tokus edilir, ardindan o kisi ile sifreli iletisim mumkun hale gelir.


Monday, March 23, 2015

Mac OS, Mac Book

MacBook Pro 12,1 ile Unix'vari gelistirme yapabilmek icin,

Caps Control yapmak icin surasi

Klavyeyi US yapmak icin Elma isaretinden System Preferences | Keyboard | Input Sources, ve US.

Alt-Tab'in "sonraki pencere"ye gidebilmesi icin Elma | System Pref | Keyboard | Shortcuts | Mission Control | Move left a space'e gelin, hangi kisayol gosteriyorsa ona tiklayin, ve Alt-Tab.

Emacs surada. Indirip tiklayinca kurulum olur.

Pip kurmak icin: sudo easy_install pip

TeX icin MaxTeX.pkg adli bir paket, Google'dan bulunabilir. Kurarken 'customize' secin ve ghostscript kurulusunu iptal edin (cunku bu paket ileride Octave ile cakisma yaratiyor). Kurulduktan sonra pdflatex /usr/texbin/pdflatex adresinde. Bazi ek isler, mesela minted kullanimi icin, sudo easy_install Pygments kurulmali.

R

brew tap homebrew/science
brew install gcc
brew install r

MacBook'a ssh ile login etmek icin System Preferences | Sharing'e gidin ve Remove Login'i etkin hale getirin.

Dock

Alt ortada uygulama ikonlarinin oldugu dock denen bir kisim var. Bazen uygulamalar, mesela komut satiri Python gibi, isleyince burada ziplamaya basliyorlar. Bunu kapatmak icin komut satirindan

defaults write com.apple.dock no-bouncing -bool TRUE
killall Dock

Scrollbar

Pencereleri alta yukari kaydirmak icin sagda, solda olan cubuk son MacOs'de kaldirilmis. Bunu geri almak icin System Preferences | General | Show scrollbars | Always


Tuesday, March 3, 2015

Github Usulu Dokuman Yazmak, Markdown

Github uzerinde mesela README.md (ya da diger md ile biten) dosyalarinda markdown formati kullaniliyor, baslik icin #, altbaslik icin ##, maddeler (bullet) * ile, resim, baglanti eklemek cok basit, vs. Bu format kullanmasi muthis kolay bir format - sahsen itiraf edelim, birkac kez blogger'dan cikip tum blog'u markdown bazli olarak Github uzerinden yayinlamayi dusunduk, matematiksel formulleri servis tarafinda isleyip (MathJax gibi degil, o kullanici tarafinda isliyor, Javascript uzerinden) gosteren bir cozum uzerinde bile calismaktalar. Neyse, simdilik kodlarin dokumanlarini yazmak icin markdown kullaniyoruz. Fakat bu durumda dokumanin nasil gozukecegini, dokumani Github'a gondermeden nasil bilecegiz? Cunku git push zaman alir, uzaktaki bir makinadan (github.com) sayfa gostermek te zaman alir, bu isleri yerel makinada yapsak daha iyi olur.

Komut satiri araci grip faydali olabilir.

sudo pip install grip

Dokumani derlemek icin

grip README.md --export out.html

Artik out.html icinde markdown dokumaninin goruntusu var.

Not: Bir diger arac, markdown, pek iyi islemiyor, mesela ``` arasinda kod gostermeyi tam yapamiyor.

Friday, February 20, 2015

iPython, rpy2, rmagic

iPython icinden (ya da bizim Emacs eklentisi emacs-ipython icinden) R kodlari cagirmak icin bazi kurulum numaralari; ozellikle alttaki ornek icin.

R kurulacak, biz suradan Ubuntu 12 (precise) icin r-base-core_3.1.2-1precise0_amd64.deb indirdik ve sudo dpkg -i [deb dosyasi] ile kurduk, sonra R kutuphaneleri, R komut satiri icinden,

install.packages("lme4")
install.packages("HSAUR2")

ile kurulabilir. Bu cagrilar bir pencere acip hangi bolgedeki servise baglanmak istediginizi sorar, birini secin, indirim, kurulum baslar. iPython baglantisi icin

sudo pip install rpy2

En son versiyon icin

sudo pip install --upgrade rpy2

Bende rpy2 kurulumu sirasinda hata mesajlari geldi, -llzma derleyici secenegi ile alakali (o kutuphane bulunamamis),

sudo apt-get install liblzma-dev

sonrasi hata gitti. Zaten ipython kurulmus olmali, o da pip ile olur.

Ornek icin

%load_ext rpy2.ipython
%R library(lme4)

%R data("respiratory", package = "HSAUR2")
%R write.csv(respiratory, 'respiratory2.csv')
%R resp <- subset(respiratory, month > "0")
%R resp$baseline <- rep(subset(respiratory, month == "0")$status,rep(4, 111))
%R resp_lmer <- glmer(status ~ baseline + month + treatment + gender + age + centre + (1 | subject),family = binomial(), data = resp)
%R -o resp_lmer_summary resp_lmer_summary = summary(resp_lmer)
%R -o exp_res exp_res = exp(fixef(resp_lmer))
print resp_lmer_summary
print exp_res


Simdi bu isin bir kismini Python ile bir kismini R ile yapalim,

import pandas as pd
df = pd.read_csv('respiratory2.csv',index_col=0)
baseline = df[df['month'] == 0][['subject','status']].set_index('subject')
df['status'] = (df['status'] == 'good').astype(int)
df['baseline'] = df.apply(lambda x: baseline.ix[x['subject']],axis=1)
df['centre'] = df['centre'].astype(str)
df = df[df['month'] > 0]
%R -i df
%R resp_lmer <- glmer(status ~ baseline + month + treatment + gender + age + centre + (1 | subject),family = binomial(), data = df)
%R -o res res = summary(resp_lmer)
%R -o exp_res exp_res = exp(fixef(resp_lmer))
print res
print exp_res


Bu ayni sonucu verecektir.

%R ile -i ile degisken veriliyor, -o ile degisken aliniyor. Pandas dataframe objeleri sorunsuz R'ye verilebiliyor.

%R icinde print ile birsey basmak, bazi ortamlarda islemiyor, o sebeple summary() sonucunu bile biz bir degiskene set edip onu python ile ekrana basiyoruz.

R'yi hala bazi durumlarda kullanmak lazim, mesela ustte gosterilen R lme4 glmer kullanimi (karisim etkileri -mixed effects- modelleri) halen statsmodels'da kodlanmis degil.

Friday, February 13, 2015

Python Bazli Tasinabilir Mobil UI Kodlari - Kivy

Kivy bazli yazilan Python UI kodlari hem Android hem iOS uzerinde isleyebiliyor. Android kodlamasi icin Java kullanmak istemeyenler icin iyi bir secenek olabilir. Kodun telefona gonderilmesi icin birkac yontem var, birisi Kivy "isletici" bir programi kurmak, bu isletici programin kendi apk'si var, ya Google Play'den ya da Kivy sitesinden bu apk indirilebilir.

Bu isletici programi telefonda baslatinca program dizin sisteminde /storage/emulated/0/kivy adli bir dizine bakacak, ve altinda gordugu tum alt dizinleri Kivy programlari olarak kabul edecek. Bir Kivy programinin olusturulmasi cok kolay, iki dosya yeterli. Biri android.txt digeri main.py. Text dosyasi

title=Hello World
author=Burak Bayramli
orientation=portrait

Merhaba Dunya uygulamasi

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello World')

TestApp().run()


Kendi APK'mizi kendimiz Olusturmak

Python kodlarindan direk APK'ye gitmek te mumkun. Burada Kivy'nin alt projeleri olan buildozer ve python-for-android gibi cozumler var. Bu projelerden python-for-android ile, anladigimiz kadariyla (daha kullanmadik) numpy, PIL, opencv gibi yerli kodlari APK icine dahil etmek mumun. Tek problem python-for-android sadece Linux uzerinde isliyor.  Fakat Kivy, VirtualBox uzerinden isletilebilecek ve icinde gerekli tum araclar onceden kurulmus bir sanal makina imajini sitesinden paylasiyor. Ya bu, ya da kendimiz Ubuntu kurarak python-for-android'i kullanabiliriz. 

Sunday, February 8, 2015

Julia



Bilimsel hesaplama alaninda yeni bir dil: Julia. C, Fortran gibi diller statik tipleme kullanir, kodlamasi zor ve hizlidir, Python, R, Matlab gibi diller kullanmasi kolay, dinamik ama yavastir. Julia her iki tarafin guclu taraflarini birlestirmeye ugrasiyor. Sahsen Python'da gordugumuz bazi eksikleri cevaplandirmasi acisindan bizim ilgimizi cekti. Julia LLVM bazli bir JIT kullanir, LLVM'i bir suredir takip ediyoruz, saglam bir teknoloji (ve Java VM bazli cozumlere alternatif saglamasi acisindan faydali oldu, Scala gibi).

Julia yazilan herhangi turden bir kodu "C performansina yakin" hizda isletilmesini amacliyor. Python'da ayni performansi elde etmek icin cogunlukla Numba ya da C cagrisi kullanmak lazim, bu cetrefil kodlama demek, Julia bu isi paketten ciktigi haliyle halleder. Ayrica paralelizasyon, hem ayni makinadaki, hem diger makinalardaki birden fazla islemciyi (ssh uzerinden) basagrisi yaratmadan hesap surecinin parcasi haline getirebiliyor. Python'da programcilar rahatsiz eden bir konuyu adreslemisler yani, Python derleyicisinde GIL adli bir kilit vardir ve bu sebeple gercek thread kullanimi mumkun olmaz, multiprocessing gibi paketlerle arka planda surec yaratan cozumler kullanilabilir, fakat bu cozumler dilin dogal bir uzantisi gibi durmazlar. Julia bu isi temelden cozuyor.

Bir baska iyi haber: IPython not defterinin bir varyasyonu Julia icin  kodlanmakta: IJulia.

Ubuntu'da kurmanin en kolay yolu

sudo add-apt-repository ppa:staticfloat/juliareleases
sudo add-apt-repository ppa:staticfloat/julia-deps
sudo apt-get update
sudo apt-get install julia


Friday, February 6, 2015

Monday, January 19, 2015

Derin Ogrenim, Farkli Yaklasimlar

Derin Ogrenim (deep learning) patlama yapti, fakat ilgilenenler icin bir zorluk var, literaturdeki DO anlatimlari cakisabiliyor. Mesela bir yaklasim Geoffrey Hinton'in (2006-2009 arasi) kullandigi, ust uste konmus Kisitli Boltzmann Makinalari (RBM) kullanarak. Kevin Murphy'nin kitabinda da bu yaklasim var, diger yanda yine Hinton'un kendisi (2012 sonrasi) ve Yann LeCun'un (simdi Facebook ta) kullandigi. O Convolutional Net (kisaca convnet) yaklasimi kullaniyor ki bu metotun ilk kullanimi 80'lere uzaniyor, burada girdi evrisim (convolutional) operasyondan geciriliyor. LeCun acik sekilde "ben RBM kullanmiyorum" dedi, DO hakkinda bir yazida da RBM kimse kullanmiyor gibi bir yorum yapildi, ama gecende Hadoop uzerinden RBM seviyelerini derin sekilde ogrenen bir yazi bile gecende gorduk. Ozellikle etiketli veri (labeled data) az ise, bir onegitim evresi (pretrain) RBM ve RBM tabakalari kullanimi hala gerekli gibi gozukuyor cunku RBM bir olasilik dagilimidir ve gizli katmani uzerinden ozellik azaltmasi (feature reduction) yapmaktadir. Takip edilen egitim yapan Convnet'lerin etiketli veriye ihtiyaci var.

Her iki tarafta da bol inovasyon var, Facebook'ta (LeCun idaresinde) calisan grup Torch diye bir kutuphane yayinladilar, ayrica convnet'leri GPU uzerinde isletmenin bir suru yolu var. Yaklasim acisindan convnet'ler klasik yapay sinir aglari (NN) yaklasimina daha yakin denebilir.

Reddit

LeCun Mulakati

Hinton, Murphy, LeCun Mulakat (Podcast)