Subject: [Idnet] A few ideas/suggestions to get us going

From: David Meyer <[email-masked]>
Date: Wed, 22 Mar 2017 10:29:11 -0700

Folks,

I thought I'd try to get some discussion going by outlining some of my
views as to why networking is lagging other areas in the development and
application of Machine Learning (ML). In particular, networking is way
behind what we might call the "perceptual tasks" (vision, NLP, robotics,
etc) as well as other areas (medicine, finance, ...). The attached slide
from one of my decks tries to summarize the situation, but I'll give a bit
of an outline below.

So why is networking lagging many other fields when it comes to the
application of machine learning? There are several reasons which I'll try
to outline here (I was fortunate enough to discuss this with the
packetpushers crew a few weeks ago, see [0]). These are in no particular
order.

First, we don't have a "useful" theory of networking (UTON). One way to
think about what such a theory would look like is by analogy to what we see
with the success of convolutional neural networks (CNNs) not only for
vision but now for many other tasks. In that case there is a theory of how
vision works, built up from concepts like receptive fields, shared weights,
simple and complex cells, etc. For example, the input layer of a CNN isn't
fully connected; rather connections reflect the receptive field of the
input layer, which is in a way that is "inspired" by biological vision
(being very careful with "biological inspiration"). Same with the
alternation of convolutional and pooling layers; these loosely model the
alternation of simple and complex cells in the primary visual cortex (V1),
the secondary visual cortex(V2) and the Brodmann area (V3). BTW, such a
theory seems to be required for transfer learning [1], which we'll need if
we don't want every network to be analyzed in an ad-hoc, one-off style
(like we see today).

The second thing that we need to think about is publicly available
standardized data sets. Examples here include MNIST, ImageNet, and many
others. The result of having these data sets has been the steady ratcheting
down of error rates on tasks such as object and scene recognition, NLP, and
others to super-human levels. Suffice it to say we have nothing like these
data sets for networking. Networking data sets today are largely
proprietary, and because there is no UTON, there is no real way to compare
results between them.

Third, there is a large skill set gap. Network engineers (us!) typically
don't have the mathematical background required to build effective machine
learning at scale. See [2] for an outline of some of the mathematical
skills that are essential for effective ML. There is a lot more to this,
involving how progress is made in ML (open data, open source, open models,
in general open science and associated communities, see e.g., OpenAi [3],
Distill [4], and many others). In any event we need build community and
gain new skills if we want to be able to develop and apply state of the art
machine learning algorithms to network data, at scale. The bottom line is
that it will be difficult if not impossible to be effective in the ML space
if we ourselves don't understand how it works and further, if we can build
explainable systems (noting that explaining what the individual neurons in
a deep neural network are doing is notoriously difficult; that said much
progress is being made). So we want to build explainable, end-to-end
trained systems, and to accomplish this we ourselves need to understand how
these algorithms work, but in training and in inference.

This email is already TL;DR but I'll add one more here: We need to learn
control, not just prediction. Since we live in an inherently adversarial
environment we need to take advantage of Reinforcement Learning as well as
the various attacks being formulated against ML; [5] gives one interesting
example of attacks against policy networks using adversarial examples. See
also slides 31 and 32 of [6] for some more on this topic.

I hope some of this gets us thinking about the problems we need to solve in
order to be successful in the ML space. There's plenty more of this on
http://www.1-4-5.net/~dmm/ml and http://www.1-4-5.net/~dmm/vita.html.
I'm looking forward to the discussion.

Thanks,

--dmm

[0]
http://packetpushers.net/podcast/podcasts/pq-show-107-applicability-machine-learning-networking/

[1]  http://sebastianruder.com/transfer-learning/index.html
[2]  http://datascience.ibm.com/blog/the-mathematics-of-machine-learning/
[3] https://openai.com/blog/
[4] http://distill.pub/
[5] http://rll.berkeley.edu/adversarial/arXiv2017_AdversarialAttacks.pdf
[6]  http://www.1-4-5.net/~dmm/ml/talks/2016/cor_ml4networking.pptx

---

From: Rana Pratap Sircar <[email-masked]>
Date: Thu, 23 Mar 2017 08:42:36 +0000

Hi Dave,

As always another wonderful initiative from you. I too have been struggling with the 3 points that you mentioned –

1.       Theory of Networking

2.       Open Datasets that are relevant to Networks and not the images and demography aspects – not too sure of the initiatives such as https://github.com/opentraffic & http://www.caida.org/data/

3.       Skills

I feel that apart from this, there are a couple of additional challenges –

1.       Networks have a fairly complex layered architecture. Thus, any problem statement needs to look at a smaller scope (assuming that behavior of network is sum of these scopes ~ which, in my humble opinion, is incorrect)

2.       Continuously and rapidly evolving technology

I would most definitely like to participate & contribute…

Best regards,
Rana
Ph: +91 88 00 22 4872
"You can't make the same mistake twice, the second time, it's not a mistake, it's a choice." - Anonymous

From: IDNET [mailto:[email-masked]] On Behalf Of David Meyer
Sent: Wednesday, March 22, 2017 10:59 PM
To: [email-masked]
Subject: [Idnet] A few ideas/suggestions to get us going

Folks,

I thought I'd try to get some discussion going by outlining some of my views as to why networking is lagging other areas in the development and application of Machine Learning (ML). In particular, networking is way behind what we might call the "perceptual tasks" (vision, NLP, robotics, etc) as well as other areas (medicine, finance, ...). The attached slide from one of my decks tries to summarize the situation, but I'll give a bit of an outline below.

So why is networking lagging many other fields when it comes to the application of machine learning? There are several reasons which I'll try to outline here (I was fortunate enough to discuss this with the packetpushers crew a few weeks ago, see [0]). These are in no particular order.

First, we don't have a "useful" theory of networking (UTON). One way to think about what such a theory would look like is by analogy to what we see with the success of convolutional neural networks (CNNs) not only for vision but now for many other tasks. In that case there is a theory of how vision works, built up from concepts like receptive fields, shared weights, simple and complex cells, etc. For example, the input layer of a CNN isn't fully connected; rather connections reflect the receptive field of the input layer, which is in a way that is "inspired" by biological vision (being very careful with "biological inspiration"). Same with the alternation of convolutional and pooling layers; these loosely model the alternation of simple and complex cells in the primary visual cortex (V1), the secondary visual cortex(V2) and the Brodmann area (V3). BTW, such a theory seems to be required for transfer learning [1], which we'll need if we don't want every network to be analyzed in an ad-hoc, one-off style (like we see today).

The second thing that we need to think about is publicly available standardized data sets. Examples here include MNIST, ImageNet, and many others. The result of having these data sets has been the steady ratcheting down of error rates on tasks such as object and scene recognition, NLP, and others to super-human levels. Suffice it to say we have nothing like these data sets for networking. Networking data sets today are largely proprietary, and because there is no UTON, there is no real way to compare results between them.

Third, there is a large skill set gap. Network engineers (us!) typically don't have the mathematical background required to build effective machine learning at scale. See [2] for an outline of some of the mathematical skills that are essential for effective ML. There is a lot more to this, involving how progress is made in ML (open data, open source, open models, in general open science and associated communities, see e.g., OpenAi [3], Distill [4], and many others). In any event we need build community and gain new skills if we want to be able to develop and apply state of the art machine learning algorithms to network data, at scale. The bottom line is that it will be difficult if not impossible to be effective in the ML space if we ourselves don't understand how it works and further, if we can build explainable systems (noting that explaining what the individual neurons in a deep neural network are doing is notoriously difficult; that said much progress is being made). So we want to build explainable, end-to-end trained systems, and to accomplish this we ourselves need to understand how these algorithms work, but in training and in inference.

This email is already TL;DR but I'll add one more here: We need to learn control, not just prediction. Since we live in an inherently adversarial environment we need to take advantage of Reinforcement Learning as well as the various attacks being formulated against ML; [5] gives one interesting example of attacks against policy networks using adversarial examples. See also slides 31 and 32 of [6] for some more on this topic.

I hope some of this gets us thinking about the problems we need to solve in order to be successful in the ML space. There's plenty more of this on http://www.1-4-5.net/~dmm/ml and http://www.1-4-5.net/~dmm/vita.html.
I'm looking forward to the discussion.

Thanks,

--dmm

[0]  http://packetpushers.net/podcast/podcasts/pq-show-107-applicability-machine-learning-networking/

---

From: Henk Birkholz <[email-masked]>
Date: Thu, 23 Mar 2017 10:55:48 +0100

Hello,

maybe an excerpt from my personal point of view can be a contribution to 
the discussion starting on this list.

In my experience, the gap between... work-flows (in lack of a better 
term) how problem statements are created in the domain of 
network/management/security and - in contrast - the domain of machine 
learning is (aka "appears to me, subjectively") astonishingly vast.

One way to illustrate that gap (and there are multiple ways, I think), 
using a bit of hyperbole:

"network: least viable solution" -> "I only produce the information I
require"

meets

"machine learning: combination of heterogeneous most viable solutions" 
-> "Please provide me with everything you got, including the best 
qualified semantic annotation of characteristics and context so I can 
identify and select the features that are relevant to provide a 
contribution".

Also - as trivial and repetitive as that might sound - terminology again 
is key. Please note the following quote I actually encountered in my 
very early days collaborating with machine learning architects: "The 
maximum number of ports really is 2^16? Wow, how big can these routers be?".
While this is of course "one of these entertaining anecdotes" everybody 
already heard at least once already, it also highlights quite 
prominently the existing gap form a different angle.

In consequence, guidance that enables an individual with a 
specialization in machine learning skills to just better understand the 
network domain itself - maybe by illustrating very simple, well-known 
and already solved problem statements - might already be a contribution 
of high value, just because it is specifically provided for that group 
of individuals and using terminology that is common and well-understood 
in that domain.

Viele Grü0e,

Henk

On 03/22/2017 06:29 PM, David Meyer wrote:
> from one of my decks tries to summarize the situation, but I'll give a
> bit of an outline below.
>
> application of machine learning? There are several reasons which I'll
> try to outline here (I was fortunate enough to discuss this with the
> think about what such a theory would look like is by analogy to what we
> see with the success of convolutional neural networks (CNNs) not only
> for vision but now for many other tasks. In that case there is a theory
> of how vision works, built up from concepts like receptive fields,
> shared weights, simple and complex cells, etc. For example, the input
> layer of a CNN isn't fully connected; rather connections reflect the
> receptive field of the input layer, which is in a way that is "inspired"
> by biological vision (being very careful with "biological inspiration").
> Same with the alternation of convolutional and pooling layers; these
> loosely model the alternation of simple and complex cells in the primary
> visual cortex (V1), the secondary visual cortex(V2) and the Brodmann
> area (V3). BTW, such a theory seems to be required for transfer learning
> [1], which we'll need if we don't want every network to be analyzed in
> an ad-hoc, one-off style (like we see today).
>
> others. The result of having these data sets has been the
> steady ratcheting down of error rates on tasks such as object and scene
> recognition, NLP, and others to super-human levels. Suffice it to say we
> have nothing like these data sets for networking. Networking data sets
> today are largely proprietary, and because there is no UTON, there is no
> real way to compare results between them.
>
> don't have the mathematical background required to build effective
> machine learning at scale. See [2] for an outline of some of the
> mathematical skills that are essential for effective ML. There is a lot
> more to this, involving how progress is made in ML (open data, open
> source, open models, in general open science and associated communities,
> see e.g., OpenAi [3], Distill [4], and many others). In any event we
> need build community and gain new skills if we want to be able to
> develop and apply state of the art machine learning algorithms to
> network data, at scale. The bottom line is that it will be difficult if
> not impossible to be effective in the ML space if we ourselves don't
> understand how it works and further, if we can build explainable systems
> (noting that explaining what the individual neurons in a deep neural
> network are doing is notoriously difficult; that said much progress is
> being made). So we want to build explainable, end-to-end trained
> systems, and to accomplish this we ourselves need to understand how
> environment we need to take advantage of Reinforcement Learning as well
> as the various attacks being formulated against ML; [5] gives one
> interesting example of attacks against policy networks using adversarial
> examples. See also slides 31 and 32 of [6] for some more on this topic.
>
> I hope some of this gets us thinking about the problems we need to solve
> in order to be successful in the ML space. There's plenty more of this
> on http://www.1-4-5.net/~dmm/ml and http://www.1-4-5.net/~dmm/vita.html.
> _______________________________________________
> IDNET mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/idnet
>

---

From: David Meyer <[email-masked]>
Date: Thu, 23 Mar 2017 06:35:31 -0700

Hey Rana,

On Thu, Mar 23, 2017 at 1:42 AM, Rana Pratap Sircar <
[email-masked]> wrote:

> Hi Dave,
>
>
>
> As always another wonderful initiative from you. I too have been
> struggling with the 3 points that you mentioned –
>
> 1.       Theory of Networking
>
> 2.       Open Datasets that are relevant to Networks and not the images
> and demography aspects – not too sure of the initiatives such as
> https://github.com/opentraffic & http://www.caida.org/data/
>
> 3.       Skills
>
>
>
> 1.       Networks have a fairly complex layered architecture. Thus, any
> problem statement needs to look at a smaller scope (assuming that behavior
> of network is sum of these scopes ~ which, in my humble opinion, is
> incorrect)
>

dmm> definitely; this goes with the "usable" theory of networking

> 2.       Continuously and rapidly evolving technology
dmm> Yes. One way to think about this is that in many cases ML models
assume a "stationary" underlying Data Generation Distribution [0];
obviously this isn't isn't the case in adversarial situations (this is why
"baselines" are weak in anomaly detection scenarios; an attacker merely
observes the black-box behavior and changes behavior accordingly) or in any
other case in which the underlying processes change (for example, in APT
scenarios). I will point out here that this is one place where distributed
representations can help; see [1] for a really nice overview of
representation theory.

Thanks,

Dave

[0] The underlying data generating distribution (DGD)  is the process or
set of processes that generate the data we observe; in some sense the
observations are a proxy for this DGD. The behavior of these processes is
what we really want to understand.

[1] https://arxiv.org/pdf/1305.0445.pdf

> Ph: +91 88 00 22 4872 <+91%2088002%2024872>
>
> *From:* IDNET [mailto:[email-masked]] *On Behalf Of *David Meyer
> *Sent:* Wednesday, March 22, 2017 10:59 PM
> *To:* [email-masked]
> *Subject:* [Idnet] A few ideas/suggestions to get us going
>
>
>
> Folks,
>
>
>
> in order to be successful in the ML space. There's plenty more of this on
> [0]  http://packetpushers.net/podcast/podcasts/pq-show-107-
> applicability-machine-learning-networking/
>

---

From: David Meyer <[email-masked]>
Date: Thu, 23 Mar 2017 06:51:36 -0700

Hey Henk,

On Thu, Mar 23, 2017 at 2:55 AM, Henk Birkholz <
[email-masked]> wrote:

> In my experience, the gap between... work-flows (in lack of a better term)
> how problem statements are created in the domain of

Definitely. See the few attached slides for a some ideas I have on the
topic from upcoming talks.

> "machine learning: combination of heterogeneous most viable solutions" ->
> "Please provide me with everything you got, including the best qualified
> semantic annotation of characteristics and context so I can identify and
> select the features that are relevant to provide a contribution".
>
>
> is key. Please note the following quote I actually encountered in my very
> early days collaborating with machine learning architects: "The maximum
> number of ports really is 2^16? Wow, how big can these routers be?".
> already heard at least once already, it also highlights quite prominently
> the existing gap form a different angle.
>
>
> In consequence, guidance that enables an individual with a specialization
> in machine learning skills to just better understand the network domain
> itself - maybe by illustrating very simple, well-known and already solved
> problem statements - might already be a contribution of high value, just
> because it is specifically provided for that group of individuals and using
> terminology that is common and well-understood in that domain.
>

I think what you are saying is that domain knowledge is very important
(key) when building ML solutions. That is for sure true.

Regarding terminology: it is a mess in ML: everyone uses their own
notation. Consider the notation used in [0] vs. for example, the Deep
Learning Book [1]. Compare the notation in [0] to say, Chapter 6 of [1]. So
we don't yet agree even on mathematical notation (though the notation of
[0] isn't widely used) much less the description of networks. It goes on.
I'll just point out here that this again goes to not having a "usable"
theory of network (UTON, I guess :-)).

Thanks,

Dave

[0] https://arxiv.org/pdf/1404.7828.pdf
[1] http://www.deeplearningbook.org/

---

From: David Meyer <[email-masked]>
Date: Thu, 23 Mar 2017 07:16:39 -0700

Interestingly, Andrew also points out the need for data sets and the
problem with talent pools (among many other things):
https://hbr.org/2016/11/what-artificial-intelligence-can-and-cant-do-right-now

--dmm

---

From: Adeel Rehman <[email-masked]>
Date: Thu, 23 Mar 2017 14:00:38 -0400

Thank you David for your feedback :)

Sorry i forgot to include distro initially.

On Thu, Mar 23, 2017 at 1:40 PM, Adeel Rehman <[email-masked]>
wrote:

> Hi David
>
>
>
> You have point out excellent shortcomings of Machine learning applications
> in Networking field. I have been chasing the same question for a while now.
>
>
> I think part of the reason Network Packet data is very well
> structured/designed as compare to other data sources (image, text etc). The
> network data can be exploited using domain based algorithms very
> effectively. Applying ML algorithm to learn the rules of network traffic is
> somewhat costly compare to domain based algorithm. For e.g.
>
>
> a.       Learning shortest path, we have Dijkstra algorithm. Do we need
> ML for this?
>
>
> b.      TCP optimization. We have 3 or 4 Optimization algorithms that are
> very cost effective, run in client and server stack. Do we need ML for this?
>
>
> c.       There are ML papers that show HTTPS classification with good
> accuracy using SVM, and Decision tree algorithms. But do we need these
> algorithms? We can get classification using SSL SNI packet during SSL
> handshake and that would be 100% accurate.
>
> Having said that I think there are areas where Machine learning can be
> really helpful in detection non-structured behavior in Network Traffic
>
> a.       Anomaly Detection and Threat prevention. There are several
> algorithms out there but I think ML algorithms can outperform in this area.
> I know one security vendor effectively uses ML to prevent DDOS attacks.
>
> b.      Subscriber behavior, this is a hot topic for Telco operators. I
> think unsupervised topic modeling ML method can provide grouping of
> subscribers based on their usage. I actually have not seen any
> vendor/operator doing it currently, may be my knowledge is limited.
>
> c.       Self-orchestrated Network, this can be a big thing with NFV and
> Cloud applications. ML algorithms can play a vital part here. I see Cognet
> 5GPPP is taking initiative on this, but not much work from other vendors.
>
> and i apolo
>
> On Wed, Mar 22, 2017 at 1:29 PM, David Meyer <[email-masked]> wrote:
>
>> Folks,
>>
>> [0]  http://packetpushers.net/podcast/podcasts/pq-show-107-a
>> pplicability-machine-learning-networking/
>>
> --
> Syed  Rehman

-- 
Adeel Rehman
978-551-5511

---

From: Pedro Martinez-Julia <[email-masked]>
Date: Fri, 24 Mar 2017 10:35:04 +0900

Dear all,

In order to keep track of the contribution and progress of our efforts I
think we must have some collaboration platform. I have taken the liberty
of creating a repository in GitHub [1], which can be shared easily, and
provides both a wiki and issue tracker.

For now I think that the content of this thread (beginning with David's
email and replies) is a good starting point to write an initial "mission
statement" that we can later evolve into the "IDNET: Architecture Design
Principles" document or I-D.

If you like this platform, please let me know and give me your username
so I can give you write permissions so you can upload those documents if
you like. If you do not want to upload by yourself, please give me your
consent for me to upload both your text and the documents you shared, I
will do it and you will be able to access it (r/o). Thank you very much.

Regards,
Pedro

[1] https://github.com/pedromj/idnet

-- 
Pedro Martinez-Julia
Network Science and Convergence Device Technology Laboratory
Network System Research Institute
National Institute of Information and Communications Technology (NICT)
4-2-1, Nukui-Kitamachi, Koganei, Tokyo 184-8795, Japan
Email: [email-masked]
---------------------------------------------------------
*** Entia non sunt multiplicanda praeter necessitatem ***

---

From: David Meyer <[email-masked]>
Date: Fri, 24 Mar 2017 06:36:38 -0700

Thanks Pedro!

--dmm

---

From: João Paulo S. Medeiros <[email-masked]>
Date: Wed, 29 Mar 2017 15:53:20 -0300

Dear David Meyer and all,

I would like to contribute with some ideas and published works from my
academic education.

I have been working with Machine Learning (ML) and Computer Network since
2007. I initially started my research interests with the use of neural
networks to aid the performance of classification and characterization of
remote computer fingerprinting (e.g. [0] [1], and most recently [2] [3]).
Although it is not my current main line of research, my experience will
agree with the David's comment that ``we need to think about is publicly
available standardized data''. This probably is one of the main problems
for researchers trying to advance or reproduce state-of-the-art research on
Intrusion Detection systems (and others feature extraction + pattern
recognition tasks) using ML.

My current main line of research is related to two of David's concerns:
namely, (i) the UTON and the (ii) Controllability of Computer Networks. My
PhD thesis work was related to the use of model which could be used to
minimize the overhead of network monitoring. My last published work about
this is in [4]. I used the theory of Complex Networks Controllability [5]
to achieve my PhD goal. However, I realized that its too more practical to
use this theory to build Observable (dual problem) network monitoring
systems with minimal sensor nodes, since in controllability we need to
directly change (or induce) the state of network devices. In this sense,
the theory of Adaptive Filtering (e.g. Kalman Filter) is important too.
Even so, Controlability of computer networks it's still a very interesting
and challenging problem involving not only Complex Networks theory, but
also, probably, Markov Process and ML.

Still about UTON, the network topology almost always plays an important
role in the ML system design. For many reasons, the topology is not
available and its estimation is also another important problem we could
approach using ML [6].

Finally, I would like to share an inspiring paper entitled ``Mathematics
and the Internet: A Source of Enormous Confusion and Great Potential'' [7].

Best regards!

[0] http://dx.doi.org/10.1109/EFTA.2007.4416854
[1] http://dx.doi.org/10.1007/978-3-540-89173-4_20
[2] http://dx.doi.org/10.1007/978-3-319-05885-6_12
[3] http://dx.doi.org/10.1201/b17333-10
[4] http://dx.doi.org/10.1109/CIT/IUCC/DASC/PICOM.2015.15
[5] http://dx.doi.org/10.1038/nature10011
[6] http://dx.doi.org/10.1109/TNET.2011.2175747
[7] http://www.ams.org/notices/200905/tx090500586p.pdf

-- Prof. João Paulo Souza Medeiros

---

From: Pedro Martinez-Julia <[email-masked]>
Date: Thu, 30 Mar 2017 04:00:54 +0900

Dear Joao,

Thank you for your contribution. To extend its reach, as I have
previously requested, please add it to the repository or give us
permission to do so. Thank you.

Regards,
Pedro

---

From: João Paulo S. Medeiros <[email-masked]>
Date: Wed, 29 Mar 2017 16:07:35 -0300

Dear Pedro,

you have my permission to do so. Thank you.

---

From: David Meyer <[email-masked]>
Date: Wed, 29 Mar 2017 12:15:01 -0700

Hey João,

Thanks for the references. More to read and understand! I'll just pint out
here that ``Mathematics and the Internet: A Source of Enormous Confusion
and Great Potential'' was written by two of my good friends and colleagues
(John and Walter). See http://www.1-4-5.net/~dmm/ml/talks/2017/nanog61.pptx
for some of the work John and I have done. There's lots more of this stuff
on http://www.1-4-5.net/~dmm/vita.hml under Recent Talks.

Small world!

Dave

On Wed, Mar 29, 2017 at 11:53 AM, João Paulo S. Medeiros <[email-masked]

> namely, (i) the UTON and the (ii) Controllability of Computer Networks.
> My PhD thesis work was related to the use of model which could be used to
> to achieve my PhD goal. However, I realized that its too more practical
> to use this theory to build Observable (dual problem) network monitoring

---

From: grenville armitage <[email-masked]>
Date: Thu, 30 Mar 2017 11:18:19 +1100

On 03/23/2017 04:29, David Meyer wrote:
     [...]
> The second thing that we need to think about is publicly available standardized data sets. Examples here include MNIST, ImageNet, and many others. The result of having these data sets has been the…

Admittedly narrow in scope, and a bit dusty with age, but we have some early-2000s first person shooter (FPS) game traffic traces available at http://caia.swin.edu.au/sitcrc/song   (Sadly, not much changed since 2006 when project funding ended. But perhaps still of interest to someone.)

cheers,
gja

-- 
Professor Grenville Armitage
School of Software and Electrical Engineering
Faculty of Science, Engineering and Technology
Swinburne University of Technology, Australia
http://i4t.swin.edu.au/people/garmitage