# Boy’s Surfaces

Boy’s surface is a nonorientable surface found by Werner Boy in 1901. Boy’s surface is an immersion of the real projective plane in 3-dimensional without infinities and singularities, but it meets itself in a triple point (self-intersect). The images below are generated using 3D-XplorMath, and with the “optimal” Bryant-Kusner parametrization when $a= 0.5$, $-1.45 < u < 0$, and $0 < v < 2\pi$ :

Other viewpoints :

Projective Plane

There are many ways to make a model of the Boy’s surface using the projective plane, one of them is to take a disc, and join together opposite points on the edge with self intersection (note : In fact, this can not be done in three dimensions without self intersections); so the disc must pass through itself somewhere. The Boy’s surface can be obtained by sewing a corresponding band (Möbius band) round the edge of a disc.

The $\mathbb{R}^{3}$ Parametrization of Boy’s surface

Rob Kusner and Robert Bryant discovered the beautiful parametrization of the Boy’s surface on a given complex number $z$, where $\left | z \right |\leq 1$, so that giving the Cartesian coordinates $\left ( X,Y,Z \right )$ of a point on the surface.

In 1986 Apéry gave  the analytic equations for the general method of nonorientable surfaces. Following this standard form, $\mathbb{R}^{3}$ parametrization of the Boy’s surface can also be written as a smooth deformation given by the equations :

$x\left ( u,v \right )= \frac {\sqrt{2}\cos\left ( 2u \right ) \cos^{2}\left ( v \right )+\cos \left ( u \right )\sin\left ( 2v \right ) }{D},$

$y\left ( u,v \right )= \frac {\sqrt{2}\sin\left ( 2u \right ) \cos^{2}\left ( v \right )-\sin \left ( u \right )\sin\left ( 2v \right ) }{D},$

$z\left ( u,v \right )= \frac {3 \cos^{2}\left ( v \right )}{D}.$

where

$D= 2-a\sqrt{2}\sin\left ( 3u \right )\sin\left ( 2v \right )$,

$a$ varies from 0 to 1.

Here are some links related to Boy’s surface :

# Parametric Breather Pseudospherical Surface

Parametric breather surfaces are known in one-to-one correspondence with the solutions of a certain non-linear wave-equation, i.e., the so-called Sine-Gordon Equation. It turns out, solutions to this equation correspond to unique pseudospherical surfaces, namely soliton. Breather surface corresponds to a time-periodic 2-soliton solution.

Parametric breather surface has the following parametric equations :

$x = -u+\frac{2\left(1-a^2\right)\cosh(au)\sinh(au)}{a\left(\left(1-a^2\right)\cosh^2(au)+a^2\,\sin^2\left(\sqrt{1-a^2}v\right)\right)}$

$y = \frac{2\sqrt{1-a^2}\cosh(au)\left(-\sqrt{1-a^2}\cos(v)\cos\left(\sqrt{1-a^2}v\right)-\sin(v)\sin\left(\sqrt{1-a^2}v\right)\right)}{a\left(\left(1-a^2\right)\cosh^2(au)+a^2\,\sin^2\left(\sqrt{1-a^2}v\right)\right)}$

$z = \frac{2\sqrt{1-a^2}\cosh(au)\left(-\sqrt{1-a^2}\sin(v)\cos\left(\sqrt{1-a^2}v\right)+\cos(v)\sin\left(\sqrt{1-a^2}v\right)\right)}{a\left(\left(1-a^2\right)\cosh^2(au)+a^2\,\sin^2\left(\sqrt{1-a^2}v\right)\right)}$

Where $0, $u$ controls how far the tip goes, and $v$ controls the girth.

When $a=0.4$, $-13, and $-38 :

With orthographic projection :

About Pseudospherical Surfaces :

Surface in $\mathbb{R}^{3}$ having constant Gaussian curvature $K= -1$ are usually called pseudospherical surfaces.

If $X : M \subset \mathbb{R}^{3}$ is a surface with Gaussian curvature $K= -1$ then it is known that there exists a local asymptotic coordinate system $(x,t)$ on $M$ such that the first and second fundamental forms are:

$dx^{2}+dt^{2}+2 \cos{q}~dx~dt$, and $2 \sin{q}~dx~dt$,

where $q$ is the angle between asymptotic lines (the x-curves and t-curves). The Gauss-Codazzi equations for$M$ in these coordinates become a single equation, the sine-Gordon equation (SGE) :

$q_{xt}= \sin{q}$

The SGE is one of the model soliton equations.

References and Readings :

• Chuu-Lian Terng. 2004. Lecture notes on curves and surfaces in $\mathbb{R}^{3}$, available here.
• Chuu-Lian Terng. 1990s. About Pseudospherical Surfaces, available here.
• Richard S Palais. 2003. A Modern Course on Curves and Surfaces, available here.

3D-XplorMath is a Mathematical Visualization program. The older original version, written in Pascal, runs only on Macintosh computers, but there is also a newer cross-platform Java version, called 3D-XplorMath-J which is written in the Java programming language; to use it, you must have Java 5.0 or higher installed on your computer.

# Seputar Pembelajaran Jaringan Backpropagation (BPNN)

Pembelajaran jaringan backpropagation (backpropagation networks) atau bpnn adalah satu tipe pembelajaran terbimbing (supervised learning) yang diterapkan untuk jaringan syaraf tiruan (artificial neural networks) dalam memecahkan suatu masalah. Bpnn banyak diaplikasikan untuk pendeteksian dan pengklasifikasian pola, baik suara, bentuk tubuh, gambar seperti dalam pemrosesan image, fingerprint, face recognition, karakterisasi, juga banyak diterapkan dalam prediction dan approximation.

Algoritma pembelajaran bpnn pada tulisan ini menggunakan metode gradient descent, yang menerapkan aturan pembaharuan bobot (weight) secara iteratif :

$w_k \longleftarrow w_k - \mu \frac{\partial E}{\partial w_k}$ …… (1)

hingga bobot $w_k$ dalam jaringan konvergen ke nilai (solusi) yang diharapkan. Pada persamaan (1), $\frac{\partial E}{\partial w_k}$ adalah turunan parsial (partial derivative) error jaringan E terhadap bobot $w_k$, sedanghkan laju perubahan (modifikasi) bobot di setiap iterasi dikontrol oleh $\mu$, yang disebut “laju pembelajaran” (learning rate).

Gambar 1. Struktur Algoritma Pembelajaran Jaringan Backpropagation

Pada gambar 1 neuron ke-m pada lapisan n yang mempunyai bobot k ditulis $w_{km}^n$, $s_m^n$ menyatakan jumlah input yang telah diberi bobot, dan $x_m^n=f(s_m^n)$ adalah output neuron. Sebagai contoh, $x_k^{n-1}$ adalah output neuron ke-k pada lapisan (n-1); $x_k^{n-1}$ juga input ke-k untuk tiap-tiap neuron pada lapisan n; yaitu, $x_k^{n-1}$ dikoneksikan dengan bobot $w_{km}^n$, bobot ke-k untuk neuron ke-m di lapisan n.

Untuk menurunkan aturan pembaharuan bobot di algoritma bppn ini, digunakan aturan rantai (chain rule) :

$\frac {\partial E}{\partial w_{km}^n}=\frac {\partial E}{\partial s_m^n}\frac {\partial s_m^n}{\partial w_{km}^n}$ …… (2)

Jumlah input yang telah diberi bobot untuk neuron ke-n sebelum masuk ke fungsi transfer non-linear adalah :

$s_m^n=\displaystyle\sum_{j=1}^M w_{jm}^n x_j^{n-1}$ …… (3)

Atau dapat ditulis,

$\frac {\partial s_m^n}{\partial w_{km}^n} = x_k^{n-1}$. …… (4)

Dengan mensubstitusikan persamaan (4) ke persamaan (2) didapatkan :

$\frac {\partial E}{\partial w_{km}^n}=x_k^{n-1} \frac {\partial E}{\partial w_m^n}$ ….. (5)

dan dengan menggunakan aturan rantai didapatkan :

$\frac {\partial E}{\partial w_{km}^n}=x_k^{n-1} \frac {\partial E}{\partial x_m^n} \frac {\partial x_m^n}{s_m^n}$ …… (6)

Selanjutnya digunakan fungsi transfer non-linear yang bisa digunakan dalam jaringan, sebagai misal di sini digunakan fungsi sigmoid :

$f(x) = \frac {1}{1 + e^{-x}}$ …… (7)

$f'(x) = f(x)[1-f(x)]$ …… (8)

karena $f(s_m^n)=x_m^n$, persamaan (6) menjadi :

$\frac {\partial E}{\partial w_{km}^n}=x_k^{n-1} f'(s_m^n) \frac {\partial E}{\partial x_m^n}$ …… (9)

Persamaan (9) adalah kunci di dalam penurunan karena menyatakan derivative suatu bobot terhadap error jaringan dalam pengertian derivative error jaringan terhadap output neuron. Langkah berikutnya adalah menemukan ekspresi rekursif yang juga menggunakan aturan rantai, sehingga diperoleh :

$\frac {\partial E}{\partial x_m^n} = \sum_j w_{mj}^{n+1} f'(s_j^{n+1}) \frac {\partial E}{\partial x_j^{n+1}}$ …… (10)

selanjutnya dengan mendefiniskan :

$\delta_m^n=f'(s_m^n) \frac {\partial E}{\partial x_m^n}$ …… (11)

dan menggunakan persamaan (9) didapatkan formula rekursif untuk bobot jaringan :

$w_{km}^n \longleftarrow w_{km}^n - \mu \delta_m^n x_m^{n-1}$ …… (12)

dimana $\mu$ adalah konstanta, learning rate. Dengan menggunakan persamaan (11) untuk neuron ke-m di lapisan output (lapisan N),

$\delta_m^N=-2(y_m^N-x_m^N)f'(s_m^N)$ …… (13)

dimana $y_m^N$ adalah target output  dan $E=(y_m^N-x_m^N)^2$. Untuk neuron di hidden layer n dapat digunakan ekspresi persamaan :

$\delta_k^n=\sum_m w_{km}^{n+1} \delta_m^{n+1}$ …… (14)

Sebagai kesimpulan, persamaan (12), (13) dan (14) adalah persamaan kunci di dalam penurunan rumus yang bisa digunakan untuk memperbaharui bobot jaringan sehingga error jaringan konvergen ke nilai minimum.

Uji Coba Algoritma Pembelajaran Bppn dengan Java Library

Sebagai percobaan saya gunakan Java library di Neuroph yang terintegrasi dengan NetBeans untuk membangun arsitektur jaringan syaraf tiruan dengan jaringan bppn. Di sini saya menggunakan jaringan perseptron multilayer, dengan 2 neuron input, 3 hidden neuron dan 1 neuron output; learning rate di-set ke nilai 0.5. Dan untuk training set digunakan XOR gate :

Gambar 2. Training Set dengan XOR gate

Total eror jaringan konvergen ke :

Gambar 3. Jumlah Iterasi dan Error total jaringan

Setelah training di atas dilakukan sebanyak 1486 kali iterasi, jaringan di uji coba dengan menggunakan nilai input 1 XOR 0, hasilnya divisualisasikan dalam graph berikut :

Gambar 4. Graph Bpnn dengan Multilayer Perceptron

Dari graph pada gambar 4 terlihat nilai output jaringan 0,865 mendekati nilai 1, yang merupakan output yang diharapkan untuk nilai input 1 XOR 0.

Bacaan online :