#header-inner {background-position: right !important; width: 100% !important;}


How to Recognize Face using Neural Network AI.


... it's just an idea, critic & feedback welcome.

... it's an attempt to understand Multilayer Perceptron from a practical perspective.

... i didn't consider backpropagation yet, but i understand it as an optimization method.

Algorithm's Idea.

1. Classify Eyes.
1.1. Select Eyes area from a photo.
1.1. Using Multi-Class Perceptron classify eye colour.
1.2. Using Multi-Class Perceptrons classify eye size, shape and other properties.

As a result we'll have a tuple: (colour, shape, size, ...).

2. Classify other face's parts - hair, forehead, ears, nose, lips, jaw, beard, moustache, ...

As a result we'll have a lot of tuples with face part's properties.

3. Classify face parts' relative positions.

4. Form the input-layer, each of neurons serving a tuple depending on input image data feed.

5. Form the Hidden Layer - with each of neurons corresponding with face class at different positions on photo, different lighting, etc. Each of these is a class.

6. Form the Output Layer - with each of neurons corresponding with different face class.

No example.

Unfortunately i won't provide a working example, for now, at least.

Too much of work, time, and learning data required.


a Linear Mult-Class Perceptron.

Research of neural systems in living beings are source of inspiration for Artificial Intelligence & it's applications.

McCullach & Pitts developed a model of a neural cell, a neuron that is used in Artificial Intelligence.

Significiant element of this model is summing input signals with weight, then applying result to activation function.

In effect, output signal yi of a neuron ni is described as:

yi = f (ΣNj=1Wijxj).

i've played with a Perceptron code.

Perceptrons were created, initialized with random input weights.

Learning data was provided, weights were adjusted depending on errors and learning rate over a time measured in epochs.

Learning data consisted of input and output value, so Perceptrons in Training could 'know' if they provided erroneous results, so these could adjust input weights.

After learning, Perceptrons were provided with input data & produced outputs.

Then i've combined results to classify RGB values of input data into a four classess: 'mostly red', 'mostly green', 'mostly blue', 'mostly of no colour'.

i've used a linear threshold function as an activation function for simplicity & clarity.

... with a sigmoidal function and a well-chosen threshold error-rate would be far less, i think.

Sigmoidal Function is most often defined as:

f(value) = 1 / (1 + Math.pow(Math.E, - β * value));

... the β value determines how steep is function's shape.

Source code in Java is avialable.


-=- Click on image to enlarge, if You wish. -=-


3D Fractals, Animations, Stitie Space & Recursion.

What are Fractals?

Artificially created fractals commonly exhibit similar patterns at increasingly small scales.

It is also known as expanding symmetry or evolving symmetry.

If the replication is exactly the same at every scale, it is called a self-similar pattern.

Source: Fractal on Wikipedia.

Stitie Space.

Stitie Space is 3D Objects Matrix / 3D Objects Array /, with convenience methods for manipulating objects within.

These objects can communicate, send messages as designed.

Let's note that resulting Objects Graph is a model of a program, can be run.

Stitie Space Recursion.

Within each of 3D Coordinate points in Stitie Space, a 'machine' can be put.

Within this machine - object can be run.

Within this object, Stitie Space can be recursively created.

Any of mono-coloured 3D Art can be a Fractal that way.

Each of voxels that are non-empty can contain exactly similar Stitie Space as the Stitie Space it is contained within.

That way, Stitie Space's state repeats itself in each of these non-empty voxels.

Similarly, n-colour Art can be a fractal when:
- for each colour, a different Art is used in it's subspace, Art that at a certain scale is visualized as a voxel of that color,
- every of Arts uses all of n colours.

Mindful Imaging.

Part of Stitie Space's functionality is Mindful Imaging.

It's a subsystem that can visualize - for example on a monitor's screen - inner state of Stitie Space.

There's planned 'zoom-in' functionality for Mindful Imaging, as well as 'Marching Cubes Algorithm' use, as well as ability to visualize machines & contained objects in any way.

Mindful Imaging should allow for animations being displayed, zoomed at any level - fractal animations & more.

Side Effects.

Object graphs within Stitie Space can not only be visualized, can also be run.

Running program has side effects as exchanging input/output data to devices connected to a computer.


Joining Finite State Automatons.

A few of parallel finite state automatons can be joined into one larger finite state automaton - cartesian product of state tuples is created, transition arrows are added appropriately.


-=- a theoretical example. -=-

In FSM 1, initial (starting) state is S1,1,
In FMS 2, initial (starting) state is S2,2.


In FSM 3, initial (starting) state is S1,1 x S2,2

These FSMs do not have accepting (ending) states.

MATEN Form Transition & Detection.

Considering Forms/Transition Graph in the MATEN Forms Invocation functionality;

This graph would be a finite state automaton, with each of states corresponding with one of forms.

Let's note that a few of parallel finite state automatons can be joined into one larger finite state automaton.

Therefore we should consider Forms consisting of Sub-Forms, as in Object-Oriented 'has-a' relation.

... for example: There can be Amitabha Buddha Form which can have Dorje Sub-Form. This Dorje Sub-Form can have it's own finite state automaton with it's states, for example 'raised', 'resting on hand', ...

Considering visual support (using Mindful Imaging, perhaps dynamic interaction as well) for form/transition graph - including 'form invocation history', 'current form detection method & form detection history';

There should be 'no-form' & 'empty form' as two of possible detected forms, Let's note that forms can have inheritance tree, can be more or less abstract/concrete as well. 'What-is' relation should consider coordinates of form's parts, not only types, states, strategies & links in Space.


Interactive Mindful Imaging & Events.

Mindful Imaging is a part of 'Ola AH' Programming Language in making.

It can be used to visualize state of computer memory in many ways.

i think it should be interactive, should react to events - from other software parts, from keyboard & mouse, from the Internet, ...

i think it should raise & serve events as well.

i think Mindful Imaging should use both Stitie Space, as well as an Event Bus.

... as a reaction to events, many things can be done - not only changing visualization mode, but also affecting program dynamically, at runtime.

See also, if You wish: Agile Transformation of Information State, Mindful Imaging, Mindful Imaging & Editor.

Shared Memory, Reservations & Events.

Computer programs can execute concurrently or in parallel.

With multiple processors, or with concurrency there's need for communication services, for example via shared memory and / or events.

One of possible models for distributed communication includes:
- Shared Memory, with it's parts reserved for 1, 2 or more processess,
- Event Bus.

This way running programs can communicate easily.

For example:

Two processess P1 & P2 run on two processors, and need to communicate.

A part of shared memory is reserved for exclusive use by P1 & P2.

Communication via event bus is established.

P1 & P2 start running, then P2 needs data from P1. P2's execution becomes suspended, it waits for an event notification.

P1 runs, produces partial results of it's execution, then puts result data into a reserved part of shared memory.

Event is raised, and notification reaches P2.

P2 'awakens' from 'suspended state', and continues it's execution.

P2 retrieves data from shared memory and continues it's task.

There are more minimalistic communication models, but this one is very simple to use by programmers.

Programmers' work is very expensive, every hour of work costs a lot of money - so this solution can very significiantly reduce projects' costs.

One has to consider costs of buying/running hardware vs costs of programmers' work when deciding which solution to use.


Power Shell: Advice & Critic Welcome.

PowerShell is a task automation and configuration management framework from Microsoft, consisting of a command-line shell and associated scripting language.

Shell is a tool for human interacting with computer via scripts & commands.

Internet acquaintance (Darkpowder) who worked as administrator professionally, advised me this tool as popular among professional admins.

i am preparing to work as network admin in 2-4 years, to understand networking, configuration management & administration - as a next step for developing in
IT Security/Hacking for Professional Work. My focus is Quantum Hacking as well as Classic Hacking, both ethical.

Should i learn Power Shell, or there are better tools for Network Administration - not only from practical, professional perspective?

i am not ashamed that i join Esoterics, Spirituality with Sciences, so should i consider something that can be read 'Powers Hell'?

Hells' symbolics & lore is important in Esoterics, as Ethics & Wisdom are.

i was born 13 Sep 1977, numerologically 13 & two 7's, both luck & disluck together.

i was born on Programmer's Day (256th, 28th day of the year) under the TAROT Mage Card Sign.

Names, Dates & Symbols affect greatly our lives, have power.

Spiritual Minorities, both good, neutral or evil are important target groups & markets for my technologies, tools & services.

The Clock Subsystem & Events.

Clocks play important part in computing.

Every computer has clock built-in, synchronizing clocks is imprecise & difficult - even with Internet, as there are delays in transmission & software running delays.

i think that in many Distributed Systems it's worth to invest in dedicated computer for running Clock Subsystem, that serves events - either periodical and/or preordered.

Events are passed either directly, or to event bus - which might be hierarchical, distributed or simplified to a single machine/object.


Memory Banking.

(article in making, to be edited & continued).

Memory Banking is an idea for managing computer memory with Operating Systems uses in mind, both distributed or not.

For now i'll write about in-single-machine memory banking, starting simple.

Processess lease memory cells for a time at a price.

Processess can give read and/or write permissions for other processess, for given memory cell(s).

There are memory chunks leased together, with given size - there's option to change size of chunks dynamically at runtime.

There's invariant held in observable moments that largest chunks of memory are kept at beginning of data structure, it's sorted from largest to smallest as memory cell addressess advance. In case of same sizes, earlier-created chunk preceeds newer chunk(s).

Method of ensuring this invariant is sorting defragmentation, as well as process/thread atomicity & concurrency.

For prototype in Java considerations, data structures used are:
- TreeMap, with keys being memory cell addresses, with values being chunk unique identifiers & a position in it's chunk,
- HashMap, with keys being chunk identifiers, with values being chunk sizes as well as timestamp of creation.

There's possibility of copying a lot of data into memory, more than one chunk possibly, as well as merging chunks, at beginning or end of other chunk.

TreeMaps & Comparators have use in sorting, reconstructing TreeMap probably is neccessary to enforce sorting.

See also, if You wish: Shared Memory, Reservations & Events.


Different Technologies, Different Ways.

When i was at a beginning of my programming career, i imagined that projects are done using a single language, a single, internally-coherent technology.

Unfortunately, reality is far worse.

Let's look at web applications, for example.

There's presentation layer that uses html (basic page layout & content), javascript
(in-browser scripts), css (looks & style), perhaps also different frameworks / libraries for javascript, perhaps flash or other plugin-solutions.

These technologies complement each other, are used together.

This is very cumbersome to use so many tools for a single product, to think using many ways, many paradigms at once.

But reality is such, for now at least.

With web applications not only in-browser presentation matters, there's also server side & client-server communication protocol.

For server side there are different solutions - Java, C#, PHP, Python, Perl - to name a few of the more popular languages.

Server side solutions can cooperate, can be integrated - while it's not neccessary to learn a few, it makes sense for some to integrate web applications, to make them communicate & cooperate.

Again there are many surrounding technologies around these languages - for database interaction, for distributed communication, for handling typical technical problems.

But is it worthwhile to learn everything?

There's so much of work & solutions done that no single man or woman can learn it all in a single lifetime - Computer Sciences are vast, professionals do specialize.

More than that - there are technologies that are not used together, that are used in an either this or that way.

For example: GWT (Google Web Toolkit) & JSF (Java Server Faces).

These are frameworks for presentation layer, it makes no sense to use them both at once. Doing this could be compared to using both fork, knife, spoon & rice chopsticks at the same time.

One certainly should not combine these in a single project.

GWT & JSF are different paradigms, once one learns one way, it sets one's thinking certain way - making it difficult to change habits.

More than that, both projects are developed - there's a lot of work in keeping up with changes & current versions of chosen technology.

Pursuing both at once would be confusing & time-wasting, as well - there's so much to learn to keep up with one's career already, anyway.

Finally - while learning both GWT & JSF has it's advantages, as it makes one more versatile in what contracts one can fulfill, there are much better ways of using one's time to make himself or herself more attractive on work market.

Let's be wise, let's choose our tools wisely, let's learn what's beneficial & meaningful, let's not waste our time on stupid ideas.

Personally i chose GWT, and am fine with it.

Despite many offers, i prefer to not touch JSF, to not waste my precious time.

Yes, i tried to use JSF Professionally - it's certainly not my way.


Gratitude & Thanks.

i wish to thank people who enabled me my education & advancement in Sciences.

Mostly Jakub Kruszona-Zawadzki, of Warsaw University (MIM) who taught me Assembler (Motorola 68000 on Atari ST) & his wife, Agata Godlewska-Kruszona.

When i was studying Low Level Programming (Assembler & C mostly) at MIM UW, i was best on the year - because of my interrest at youth.

Even if i didn't understand at first, at youth - it still opened my mind & i was ready for that very difficult lesson later - so i excelled on time.

They played with me AD&D as well, suffered my foolishness, unattractiveness & other faults.

Rest of the AD&D team as well, including Michał Bobran, Paweł Suchocki, Jakub Wysoczański & others.

Most if not all of them studied on MIM UW as well.

Warsaw University (mostly MIM) i thank as well.

Special Gratitude to Teachers as well: mostly for Marcin Engel, Piotr Krzyżanowski (Przykry), Krzysztof Stencel, Mirosława Miłkowska, Leszek Plaskota & Zbigniew Jurkiewicz.

i think they should have more than words, my opinion is that they should have benefits from Dragonfly Algorithm & it's technologies.

i wish to return to MIM UW later in life, to study Mathematics this time.

Piotr Krzyżanowski opened my eyes on how bad i am with Numeric Methods.

i think Numeric Methods is not enough for me, i wish for full Masters Degree in Mathematics - to turn my Weakness into Strength.

i failed to get graduating grade at Numeric Methods, it was defeat. i still passed Conditionally to 2nd year of Study, didn't complete that lesson yet. But i think that one learns best from defeats, from victories - much less. As it was with at least one of my Martial Arts Lessons.

Mathematics has uses in Cryptography, Computer Graphics, Proofs of Correctness, Artificial Intelligence, Fractals & other Sciences as well.

i think i'll benefit myself & others more with Studying Mathemathics, than by Studying Computer Sciences formally. Computer Sciences i can learn easily enough from books at my stage of Scientific Development anyway.